Django - 在一个模板中显示多个视图
Django - display multiple views in one template
我目前正在做一个 Django 项目,我想在其中构建一种仪表板,它实际上可能有两个 bootstrap 列(将来可能有 3-4 个)。在每一列中,将显示来自数据库的内容。目前,这意味着我要显示两个 table。一个显示模型的所有条目,一个 table 显示最后的历史条目 (django-simple-history)。 tables 使用 django-table2.
呈现
首先我尝试用 MultiTableMixin 解决问题。不幸的是没有成功。我目前的想法是在逻辑上将内容拆分为两个视图,然后为每一列添加一个视图。我试图让视图显示在 iframe 中。另外,这并不像想象的那么好。
我的问题有哪些选项。还是我想的太复杂迷路了?
您的标题有点误导,因为您的问题实际上很简单:
只需在您的视图中进行两个查询即可获得两个用于呈现 columns/tables 的查询 objects。所以你有一个视图(功能)但逻辑仍然是分开的内容:
def get_data_for_columns(request):
column_all_data = YourModel.objects.all()
column_latest_data = YourModel.objects.all().order_by('-publish_date')[10:] # 10 latest objects by publish date
context = {
'all_data': column_all_data
'latest_data': column_latest_data
}
return render(request, 'your_template.html', context)
模板:
# example loop data and render table
<table>
<tr>
{% for item in all_data %}
<td>{{ item.value }}</td>
{% endfor %}
</tr>
</table>
<table>
<tr>
{% for item in latest_data %}
<td>{{ item.value }}</td>
{% endfor %}
</tr>
</table>
我目前正在做一个 Django 项目,我想在其中构建一种仪表板,它实际上可能有两个 bootstrap 列(将来可能有 3-4 个)。在每一列中,将显示来自数据库的内容。目前,这意味着我要显示两个 table。一个显示模型的所有条目,一个 table 显示最后的历史条目 (django-simple-history)。 tables 使用 django-table2.
呈现首先我尝试用 MultiTableMixin 解决问题。不幸的是没有成功。我目前的想法是在逻辑上将内容拆分为两个视图,然后为每一列添加一个视图。我试图让视图显示在 iframe 中。另外,这并不像想象的那么好。
我的问题有哪些选项。还是我想的太复杂迷路了?
您的标题有点误导,因为您的问题实际上很简单:
只需在您的视图中进行两个查询即可获得两个用于呈现 columns/tables 的查询 objects。所以你有一个视图(功能)但逻辑仍然是分开的内容:
def get_data_for_columns(request):
column_all_data = YourModel.objects.all()
column_latest_data = YourModel.objects.all().order_by('-publish_date')[10:] # 10 latest objects by publish date
context = {
'all_data': column_all_data
'latest_data': column_latest_data
}
return render(request, 'your_template.html', context)
模板:
# example loop data and render table
<table>
<tr>
{% for item in all_data %}
<td>{{ item.value }}</td>
{% endfor %}
</tr>
</table>
<table>
<tr>
{% for item in latest_data %}
<td>{{ item.value }}</td>
{% endfor %}
</tr>
</table>