我正在尝试使用Django制作标准的博客文章Web应用程序。我在一个应用程序中有多个模型。我想在所有模型的几个帖子中显示一个索引,为此我需要在每个模型的视图中有多个查询集,我不知道该怎么做。
博客/ models.py
class topicone(models.Model):
title = models.CharField(max_length=200)
date = models.DateTimeField()
def __str__(self):
return self.title
class topictwo(models.Model):
title = models.CharField(max_length=200)
date = models.DateTimeField()
def __str__(self):
return self.title
class topicthree(models.Model):
title = models.CharField(max_length=200)
date = models.DateTimeField()
def __str__(self):
return self.title
博客/ urls.py
urlpatterns = [
path('', views.indeview.as_view(), name="indexview"),
path('<int:pk>', DetailView.as_view(
model = topicone,
template_name = "blogs/topicone.html"
)),
]
博客/ views.py
class indeview(ListView):
model = topicone
template_name = "blog/index.html"
def get_queryset(self):
return topicone.objects.all()
由于我在这里只使用一个模型,所以views.py是没用的。我尝试编写一个不从任何其他通用视图继承的独立视图,因此我可以创建不同的上下文并在视图中传递多个字典,但这似乎不起作用。这就是我试图解决的问题
blogone = topicone.objects.all()
blogdict = {
'id': blogone
}
blogtwo = topictwo.objects.all()
blog2dict = {'id': blogtwo}
return render (request, 'blog/index.html', blogdict, blogtwo)
此视图仅显示来自一个模型blogtwo
答案 0 :(得分:1)
您应该考虑以下内容:
blogone = topicone.objects.all()
blogtwo = topictwo.objects.all()
return render(request, 'blog/index.html', {'blogone': blogone, 'blogtwo': blogtwo})
由于渲染参数为request
,template
和context
。
参考:https://docs.djangoproject.com/en/2.0/topics/http/shortcuts/