Ref: 实战Django的URL命名空间namespace【多用户时可能会用到】
Post.objects.all() --> 但本意是 只关心:published的条目,所以需要自定义(overwrite)。
改为如下:
[views.py]
def home(request): # newmanager自定义了filter all_posts = Post.newmanager.all() # all_posts 给模板的参数 return render(request, ‘index.html‘, {‘posts‘: all_posts})
object的默认定义,以及newmanager的自定义替代者的形式。
[models.py]
class NewManager(models.Manager): def get_queryset(self): return super().get_queryset() .filter(status=‘published‘) objects = models.Manager() # default manager newmanager = NewManager() # custom manager
原文:https://www.cnblogs.com/jesse123/p/14159239.html