You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中如何在单个页面中引入两个模型?

解决Django单页面加载两个模型数据的问题

问题根源

你调用render函数时错误传入了两个上下文字典,Django的render函数仅支持接收一个上下文字典作为第三个参数,多传参数会导致解析异常,返回错误的HTML内容。另外代码里还有个变量名拼写错误:navigation_results_hone应该是navigation_results_home。

修正后的代码

views.py

def home(request):
    # 查询两个模型的所有数据
    home_results = MainPageInfo.objects.all()
    navigation_results_home = Navigation.objects.all()
    
    # 合并所有上下文数据到一个字典中
    context = {
        'home_results': home_results,
        'navigation_results_home': navigation_results_home
    }
    
    # 只传入一个上下文字典给render函数
    return render(request, 'index.html', context)

admin.py(补充注册MainPageInfo)

别忘了在后台注册MainPageInfo模型,否则无法在admin后台管理该模型的数据:

admin.site.register(Navigation)
admin.site.register(MainPageInfo)

模板使用示例(index.html)

在模板中可以分别调用两个模型的数据:

<!-- 展示MainPageInfo的数据 -->
<div class="main-info">
    {% for info in home_results %}
        <p>{{ info.title }}</p>
    {% endfor %}
</div>

<!-- 展示Navigation的SVG文件链接 -->
<div class="navigation">
    {% for nav in navigation_results_home %}
        <a href="{{ nav.title.url }}" target="_blank">打开SVG文件</a>
    {% endfor %}
</div>

内容的提问来源于stack exchange,提问作者Proger228

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:45:28