0

视图.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 值,现在它显示全部。

我尝试了上面的代码,它没有给出任何错误但不起作用。

谢谢

4

1 回答 1

1

您正在尝试使用 QuerySet 作为对象,这是错误的。

您首先要做的是为您的 QuerySet 再接受一个参数。所以你可以过滤来自你的request.POST

Types.objects.filter(..., is_active=True)

视图.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,
     })  

我简化了你的代码。

于 2013-05-29T10:58:24.777 回答