【发布时间】:2018-03-09 03:30:52
【问题描述】:
感谢 itertools 链,我有一个视图允许我同时使用两个不同的模型。我在我的模板中的一个表中渲染两个链式模型的实例,如果实例来自一个模型而不是另一个模型,我需要对表的行进行不同的格式化。
所以基本上:我将两个模型链接起来并在一个表中显示它们的实例,表中包含模型 A 实例的所有行都应该用黄色背景格式化,所有包含模型 B 实例的行都应该改为蓝色背景。
这是视图:
class BaseView(generic.ListView):
template_name = 'base/base_list.html'
context_object_name = 'base_list'
def get_queryset(self):
queryset = Document.objects.order_by('due_date')
return queryset
def get_context_data(self, **kwargs):
context = super(BaseView, self).get_context_data(**kwargs)
context['object_list'] = sorted(
itertools.chain(Program.objects.all(), Document.objects.all()),
key=attrgetter('validity_date'),
reverse=True)
return context
在逻辑上,我在模板中需要的是这样的:
if
object in object_list ***belongs*** to Program.objects.all()
(etc)
else
(etc)
问题是:我应该如何表达属于?
我也查看了模板标签,但找不到正确的方法。
提前谢谢你。
【问题讨论】:
-
您的模型是否有任何独特的识别特征?
-
不,它们主要共享相同的属性(名称、描述...)。
-
等等,他们只有一个完全不同的属性,我可以用那个吗?
标签: python django django-templates django-views django-template-filters