filter model queryset using with template tag
有没有一种方法可以将queryset过滤器与
我正在尝试执行以下操作:
1 2 3 4 5 6 7 | {% if request.user.is_superuser %} {% with arts=category.articles.all %} {% else %} {% with arts=category.get_active_articles %} {% endif %} #other statements # Do some more template stuff in for loop |
其他变更:
1 | {% with arts=category.articles.all if self.request.user.is_superuser else category.get_active_articles %} |
号
无法在模型中执行自定义查询集,因为我没有请求。
有没有办法得到我需要的过滤?我尝试为超级用户/员工和普通用户显示不同的查询集,这样我就可以在不必转到管理页面的情况下对状态等进行一些更新。
在
应用程序/视图.py
1 2 3 4 5 6 7 8 9 10 11 | from django.shortcuts import render from app.models import Category def articles(request): if request.user.is_superuser: articles = Category.articles.all() else: articles = Category.get_active_articles() context = {'articles': articles} return render(request, 'articles.html', context) |
应用程序/模板/文章.html
1 2 3 4 | {% for a in articles %} {% a.title %} {% a.content %} {% endfor %} |
号
附言:读这个来理解在哪里应该存在什么。