我有一个将在ListView中显示的模型。模型中的一个字段是具有3种选择的类别。当我显示模板时,我希望能够分辨出3个类别。我考虑重写get_context_data(),通过获取所有对象并过滤它们来为每个类别添加上下文。
这是一种比自定义模板标签更好的方法吗?
即使它是,假设我仍然想创建自定义模板标签来实现这一点,我该怎么写呢?我知道如何编写自定义标签,但我不确定如何编写这样的标签。
我想出的唯一想法是创建一个类似的标签:
@register.simple_tag(name="is_cat1", takes_context=True)
def is_cat1(self, context):
objs = context['object_list']
if (MyModel.objects.filter(category__icontains="Cat1") in objs):
objs = MyModel.objects.filter(category__icontains="Cat1")
return objs
有没有人能提供这样一个处理这类模型的过滤器的例子?除了回答我的问题,是否更好地使用上下文?
由于
答案 0 :(得分:0)
使用AJAX是正确的解决方案。这样的操作不适合Django的框架和预期用途。