比方说,在一个网站上有一个用户的个人资料页,它是一个博客网站。所以每个用户都有自己写的博客。因此,我希望个人资料页是这样的:它将显示有关该用户的详细资料,如用户名,电子邮件。而且他们写的所有博客都应该列在那里。现在我在这里有两个视图,一个用于详细的配置文件,另一个用于列出用户编写的博客。你知道吗
#view for detailed profile stuffs
class ProfileDetailView(DetailView):
model = User
#view for listing blogs written by user
class UserPostListView(ListView):
model = Post
paginate_by = 5
Post模型也是这样的:
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
现在您可以看到,一个视图继承自ListView,另一个继承自DetailView。 为了使用这两个视图来呈现我想要的内容,我不能将两个视图传递给一个模板。所以我需要把他们。现在,因为我想保持分页,所以应该将UserPostListView子类化,并可能重写get\u context\u data()。那我该怎么做呢?我找不到满意的答案。我对django也很陌生。你知道吗
任何帮助都将不胜感激。你知道吗
您需要首先更新Post模型-向user添加一个外键字段,以便知道哪个用户发布了什么。下一步重写ProfileDetailView中的get\u context\u data()函数,并在上下文中传递用户编写的所有文章。 你的get\u context\u data()cal看起来像-
然后可以通过以下方式呈现模板上每个配置文件的帖子-
我可以这样子类化ListView:
相关问题 更多 >
编程相关推荐