【发布时间】:2019-01-02 21:12:34
【问题描述】:
如何对多个 Django 模型运行查询并通过模板显示它们?
我创建了两个模型,我可以独立查询并在各自的模板中呈现响应。但是,我想做的是通过我的 Django 表单提交我的查询,让查询针对两个模型运行,然后将结果(如果有)显示在单个模板上。我怎样才能做到这一点?
型号:
class State(models.Model):
text = models.TextField(null=True)
topic_list = models.TextField(null=True)
class Hearings(models.Model):
url = models.TextField(primary_key=True)
title = models.TextField(null=True)
text = models.TextField(null=True)
观看次数:
def state(request,query):
data = state.objects.filter(text__icontains=query).values('text','topic_list')
return render(request,'State.html',context={'data':data})
def hearings(request,query):
data = Hearings.objects.filter(data__icontains=query).values('url','title', 'text')
return render(request,'Hearings.html',context={'data':data})
目前,我可以通过我的视图单独查询模型。我想通过一个视图对两个模型运行我的查询。我该怎么做?
【问题讨论】:
-
我不确定我是否理解这个问题。但是您当然可以在一个视图函数中运行这两个查询(如果它同时接受
query参数,它们似乎是 URL 参数)并让它呈现一个模板,它将两个结果查询集传递给该模板。为什么你会认为你不能做到这一点?你试过了吗?