views.py
def action(request):
user = request.user
typelist=Types.objects.filter(user=user.id,parent_type_id__isnull=False)
.order_by('title')
types = Types.objects.filter(user=user.id, parent_type_id=None).order_by('title')
report = Report.objects.get(user=user.id)
if 'is_active' in request.POST:
if types.is_active == True:
types = Types.objects.filter(
user=user.id, parent_type_id=None).order_by('title')
typelist=Types.objects.filter(
user=user.id,parent_type_id__isnull=False).order_by('title')
return render(request, 'incident/action.html',
{
'newreport_menu': True,
'types':types,
'checked_ones':checked_ones,
'typelist': typelist,
})
在模型中,title字段用于保存父元素和子元素,如果保存子元素,parent_type_id字段将保存父元素的相应id。所以现在我可以将所有父元素和子元素放入显示。
但是有些条件是他们的,即如果is_active字段中的值为True,它应该单独显示True值,现在它显示所有值。
我尝试了上面的代码,它没有给出任何错误但没有工作。
由于
答案 0 :(得分:1)
您正在尝试将QuerySet用作对象,这是有问题的。
首先要做的是接受一个参数到QuerySet。
因此,您可以过滤来自request.POST
Types.objects.filter(..., is_active=True)
Views.py
def what(request):
report = Report.objects.get(user=request.user.id)
if 'is_active' in request.POST:
types = Types.objects.filter(user=user.id, parent_type_id=None, is_active=True).order_by('title')
else:
types = Types.objects.filter(user=user.id, parent_type_id=None, is_active=False).order_by('title')
typelist = Types.objects.filter(user=user.id,parent_type_id__isnull=False).order_by('title')
return render(request, 'incident/what.html',
{
'newreport_menu': True,
'types':types,
'checked_ones':checked_ones,
'typelist': typelist,
})
我简化了你的代码。