我有一个视图,它接受一个参数并根据查询集返回一个csv文件:
def rfidi_list(request, id=None):
if id == None:
raise Http404
rfid_list = Rfid.objects.filter(----).values_list('rfid_st', flat=True)
import csv
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="rfidi_list.csv"'
writer = csv.writer(response, delimiter=';')
writer.writerow(rfid_list)
return response
我有一个名为 Rfid 的模型,其中包含名为: vrata1 , vrata2 , vrata3
我想根据url中的id过滤queryset。如果id为1,我会返回vrata1 = True的对象,如果是2,我想用vrata2 = True的对象获得qs。
谢谢
答案 0 :(得分:0)
您可以这样创建查找过滤器:
rfid_list = Rfid.objects.filter(
**{
'{}{}'.format('vrata', id): True
}
).values_list('rfid_st',flat=True)
concat' vrata'和ID,然后将语法转换为django ORM。
答案 1 :(得分:0)
我明白了。如果有人想知道,我将id作为字符串传递并添加** kwargs进行过滤。所以它看起来像这样
string = 'vrata' + id
rfid_list = Rfid.objects.filter(**{ string : True}).values_list('rfid_st',flat=True)