Django 中的排除列表无法更新

我遇到了一个问题,无法过滤和更新 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.py


def 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')


开心每一天1111
浏览 48回答 1
1回答

慕码人2483693

您现在要做的就是每次将一个新的查询集分配给同一个变量,因此您最终会得到最后一个查询集,并且永远不会同时排除所有三个查询集。您需要做的是排除多个项目: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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python