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

Django使用模型实现admin动态录入出版物数据前端渲染失败求助

问题排查及修复方案

核心问题列表

  • 模板变量名不匹配:函数视图中传入模板的上下文变量名为researchposts,但模板循环时使用的是Django类视图才会默认提供的object_list,导致循环无法触发,没有数据展示。
  • 模板内容硬编码:当前模板内的出版物名称、作者、出版信息均为固定写死的内容,即使变量匹配成功,也无法展示后台添加的动态数据。
  • 缺少Admin后台模型注册:你没有提供admin.py的代码,若未将researchpaper模型注册到后台,将无法在Django Admin中找到对应入口添加数据。
  • 可选规范优化:Django的模型类名默认遵循大驼峰命名规范,建议将researchpaper改为ResearchPaper便于后续维护;当前模板内年份固定写死为2021,可给模型增加年份字段实现动态展示。

修正代码示例

  1. 新增/修改admin.py,注册模型到后台:
from django.contrib import admin
from .models import researchpaper

admin.site.register(researchpaper)
  1. 修正模板文件的循环变量和动态字段:
{% for paper in researchposts %}
<tr>
    <td>
        <h5>2021</h5>
        <p style="color: black;"><b>{{paper.title}}</b></p>
        <p style="font-size: 14px;"><i>{{paper.publication}}</i></p>
        <p style="font-size: 14px;"><i>{{paper.authors}}</i></p>
    </td>
    <td><a href="#"
            target="blank" style="color: dodgerblue;"><i class="ai ai-google-scholar-square ai-2x"
                style="padding-right: 10px;"></i></a></td>
</tr>
<tr>
    <td>
        <hr>
    </td>
</tr>
{% endfor %}
  1. 可选:添加年份字段实现动态年份展示
    在models.py的researchpaper类中新增字段:
publish_year = models.IntegerField(verbose_name="出版年份")

修改模板中对应的年份代码为<h5>{{paper.publish_year}}</h5>,修改完成后执行python manage.py makemigrations和python manage.py migrate命令同步数据库结构即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:18:04