【发布时间】:2021-08-28 17:23:03
【问题描述】:
我为搜索引擎编写了一个 ListView。我想从两个不同模型的字段中提取数据。首先,我为每个模型声明了单独的列表。然后我将它们组合成一个列表,如下所示。
view.py
class SearchView(ListView):
template_name = 'articles/search_view.html'
def get_queryset(self):
query = self.request.GET.get('q')
object_list = Article.objects.filter(Q(title__icontains=query) | Q(description__icontains=query)|
Q(body__icontains=query) |
Q(stocks_etfs_or_bonds__ticker__icontains=query) |
Q(stocks_etfs_or_bonds__description__icontains=query) |
Q(stocks_etfs_or_bonds__name__icontains=query) |
Q(tags__name__icontains=query))
securities_list = StockETFBond.objects.filter(Q(name__icontains=query))
search_result = list(chain(object_list, securities_list))
return search_result
在这种情况下,模板将显示一个包含两个模型的列表。
search_view.html template now
{% for object in object_list %}
{{ object }}
{% endfor %}
但我希望能够在模板中显示两个不同模型的两个单独列表,如下所示。
search_view.html
{% for object in object_list %}
{{ object }}
{% endfor %}
{% for object in securities_list %}
{{ object }}
{% endfor %}
我该怎么做?
【问题讨论】:
标签: django django-models django-views django-forms django-templates