Django自定义模板标签,用于检查模型的字段

时间:2015-07-16 02:05:06

标签: python django

我有一个将在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  

有没有人能提供这样一个处理这类模型的过滤器的例子?除了回答我的问题,是否更好地使用上下文?

由于

1 个答案:

答案 0 :(得分:0)

使用AJAX是正确的解决方案。这样的操作不适合Django的框架和预期用途。