Django 如何在模板中单独显示活动状态元素
views.pyDjango 如何在模板中单独显示活动状态元素,django,django-models,django-forms,django-views,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')
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,
})
在模型中,标题字段用于保存父元素和子元素,如果保存子元素,则父元素类型id字段将保存父元素的相应id。因此,现在我可以显示所有父元素和子元素
但有些条件是它们的,即如果is_active字段中的值为True,它应该单独显示True值,现在它显示所有值
我尝试了上面的代码,它没有给出任何错误,但不工作
谢谢您试图将QuerySet用作对象,这是错误的 您首先要做的是接受QuerySet的另一个参数。 因此,您可以筛选来自
请求的内容。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,
})
我简化了您的代码。请发布工作代码。此代码甚至不会运行,因为
types
是一个查询集,并且没有is\u active
属性(在request.POST块内)。但该代码仍然无效<代码>类型是一个查询集if types.is_active==True
将始终失败,并出现AttributeError
。在我正式放弃之前,请再说一次:查询集没有其模型的属性:它们包含具有这些属性的模型实例<代码>类型是一个查询集,而不是一个模型实例。我的应用程序中遇到了一个问题,我在这个问题中得到了解释,所以您可以看一下并帮助我解决这个问题。谢谢