我刚才尝试了一下,刚好对应你这种情况
定义一个自定义过滤器即可,定义过滤器以及过滤器的配置使用请看:
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
我这里给一个简单的关于Topics(话题)对Group(小组)的例子:
from django import template
register = template.Library()
@register.filter(name='filtergroup'
def get_topics_by_group(value, arg):
topics_list = value.filter(group=arg)
return topics_list
前台使用:
topics_list|filtergroup:group.id
PS:
这样的方法仅仅对objects没有被切片的时候才能使用,如果你之前使用了切片那么就会无效
在django的项目中尽量不要再views里直接使用Models.objects.all()
,这样做对服务器压力较大,好一点的做法是:Models.objects.filter(xxx)[0:x]