我遇到了一個問題,無法過濾和更新 Django 中的排除項。我只想更新那些從我的列表變量中排除的項目。以下是我現在得到的所有內容,預先感謝我感謝任何幫助和建議比如說我有一個清單 ['1', '2', '5'] and I want to update all of my data in database exclude from 1,2,5 list and update all value into "3" views.pydef update(request):if request.method=="POST": product_ids=request.POST.getlist('id[]') for id in product_ids: result = Person.objects.filter(province="DATA_1",municipality="Data_2").exclude(pk = id).update(paid=3)return render(request, 'dashboard.html')
1 回答

慕碼人2483693
TA貢獻1860條經驗 獲得超9個贊
您現在要做的就是每次將一個新的查詢集分配給同一個變量,因此您最終會得到最后一個查詢集,并且永遠不會同時排除所有三個查詢集。
您需要做的是排除多個項目:
Person.objects.filter(
province="DATA_1",municipality="Data_2"
).exclude(
pk__in=product_ids
).update(paid=3)
請參閱有點令人困惑的文檔:
在給定的可迭代中;通常是列表、元組或查詢集。這不是常見的用例,但接受字符串(可迭代)。
基本上意味著,__in查找表達式需要一個可迭代對象,并將過濾或排除可迭代對象中的所有匹配項。
NULL 數據 Null 表示沒有數據,與 __isnull 的處理方式不同:
Person.objects.filter(
province="DATA_1",municipality="Data_2"
).exclude(
street__isnull=True
).update(paid=3)
或者:
Person.objects.filter(
province="DATA_1",municipality="Data_2", street__isnull=False
).update(paid=3)
添加回答
舉報
0/150
提交
取消