Django字段在创建页显示但详情页不显示的问题求助
解决Django DetailView不展示
clearance_required字段的问题 嘿,这个问题其实很好解决——你已经搞定了模型字段添加和迁移,CreateView的表单也能正常操作字段,问题核心就是详情页模板里没添加这个字段的渲染代码。
具体修改步骤:
- 打开你的
jobpost_detail.html模板文件 - 在合适的位置(比如标题、内容之后)添加
clearance_required字段的展示代码。这里要注意,因为你的字段使用了choices参数,推荐用Django提供的get_xxx_display()方法来显示友好的选项文本,而不是数据库里存储的原始键值。
举个实际的模板修改示例:
如果你的模板原本是这样的:
<h1>{{ object.title }}</h1> <p>Posted by {{ object.author }} on {{ object.date_posted }}</p> <p>{{ object.content }}</p>
你可以修改为:
<h1>{{ object.title }}</h1> <p>Posted by {{ object.author }} on {{ object.date_posted }}</p> <p>{{ object.content }}</p> <!-- 新增 clearance_required 字段展示 --> <p><strong>Required Clearance:</strong> {{ object.get_clearance_required_display }}</p>
补充说明:
- 如果你的模板里用的是模型小写名称(比如
jobpost)而不是默认的object,就把代码里的object换成jobpost,比如{{ jobpost.get_clearance_required_display }}。 - 使用
get_clearance_required_display()的原因:假设你的CLEARANCE_LEVELS是类似(('None', 'No Clearance Needed'), ('Secret', 'Secret Clearance'))的定义,直接用{{ object.clearance_required }}会显示None或Secret,而get_clearance_required_display()会返回对应的友好文本,用户体验更友好。 - 不需要修改
views.py里的JobDetailView,它已经自动将当前JobPost实例传递到模板中了,只要模板添加渲染代码就能正常显示。
内容的提问来源于stack exchange,提问作者Prithvi Boinpally
相关产品推荐
相关产品推荐

