![](/img/trans.png)
[英]filter on new updated queryset return empty queryset using ORM Django
[英]Using variable in django queryset in a filter or empty the filter
問題 1. 我如何在這個查詢集中使用一個變量,
def function(request):
qset1 = BigTable.objects.values(
'deb_nr_f__dcountry__wcode_f__code',
'deb_nr_f__dcountry__wcode_f__code_name',
).filter(id_nr_f__ie_code__unomer_f__nomer=iteration_result,
)
我的意思是這樣的
def function(request):
x1 = 'id_nr_f__ie_code__unomer_f__nomer'
qset1 = BigTable.objects.values(
'deb_nr_f__dcountry__wcode_f__code',
'deb_nr_f__dcountry__wcode_f__code_name',
).filter(x1 = iteration_result,
)
問題2.如何用varianbe清空過濾器,讓查詢中的過濾器不過濾記錄。 我的意思是這樣的
def function(request):
x1 = 'id_nr_f__ie_code__unomer_f__nomer'
x2 = True
qset1 = BigTable.objects.values(
'deb_nr_f__dcountry__wcode_f__code',
'deb_nr_f__dcountry__wcode_f__code_name',
).filter(x1 = x2,
)
謝謝你。
您可以定義一個dict
,然后將其作為kwargs
傳遞給filter
attr1 = 'some attr'
attr2 = 'some attr'
filter_dict = {
attr1:filter1,
attr2:filter2,
...
}
queryset.filter(**filter_dict)
您可以使用Q
對象,在其中傳遞要過濾的 2 元組:
from django.db.models import Q
def function(request):
x1 = 'id_nr_f__ie_code__unomer_f__nomer'
qset1 = BigTable.objects.values(
'deb_nr_f__dcountry__wcode_f__code',
'deb_nr_f__dcountry__wcode_f__code_name',
).filter(
Q((x1, iteration_result))
)
或者有一個值:
from django.db.models import Q
def function(request):
x1 = 'id_nr_f__ie_code__unomer_f__nomer'
x2 = True
qset1 = BigTable.objects.values(
'deb_nr_f__dcountry__wcode_f__code',
'deb_nr_f__dcountry__wcode_f__code_name',
).filter(
Q((x1, x2))
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.