问题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 importQ
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 importQ
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))
)