python - 一个视图中的不同查询集
问题描述
我正在尝试使用 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
解决方案
你应该考虑这样的事情:
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/
推荐阅读
- vue.js - Vuejs 列表重新排序不会触发转换
- bash - sed 查找并替换特定数字
- api - ActiveCollab 5.15 TrackingReport 过滤器 API 返回 404
- djaty - Djaty - 与所有 ajax 请求一起发送的 `djatyReqId` 是什么?
- javascript - Symfony 4,安装和使用jsrouting-bundle,我的控制器的路由“不存在”
- lucene - eXist-db - 基本 Lucene 查询返回空序列
- protractor - 一旦量角器首先执行,它就会阻止一个错误:-等待量角器与页面同步时出错
- apache-kafka - 如何将一个输入流拆分为多个主题并保证同时消费
- linux - 在嵌入式 qt 项目上校准和配置 evdevtouch
- angular - 如何在打字稿中获得给定时间和当前时间的差异是