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>