如何在模板中单独显示活动状态元素

时间:2013-05-29 06:27:57

标签: django django-models django-forms django-views

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值,现在它显示所有值。

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

由于

1 个答案:

答案 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,
     })  

我简化了你的代码。