Django模板中仅显示ForeignKey数值而非对象实例
解决方法
有三种常用方式可以实现只显示ForeignKey关联对象的ID值:
1. 模板中直接访问主键字段
在模板遍历vul1的时候,直接通过VID.id或者VID.pk获取ID值:
{% for item in vul1 %} {{ item.VID.pk }} {% endfor %}
pk是Django中主键的通用别名,不管你的主键字段叫id还是其他名字都能生效,比直接用id更灵活。
2. 自定义vul模型的__str__方法
如果希望所有地方显示vul对象时都直接展示ID,可以修改vul模型,重写__str__方法:
class vul(models.Model): # 你的其他字段定义 def __str__(self): return str(self.pk)
修改后,模板里直接写{{ item.VID }}就会显示对应的ID值。
3. 查询时提前指定获取ID字段
如果只需要VID的ID,不需要关联对象的其他数据,可以在视图查询时用values方法只提取需要的字段:
vul1 = clientvul.objects.all().values('Path', 'Product', 'isActive', 'client__pk', 'VID__pk')
然后在模板里通过{{ item.VID__pk }}来显示ID:
{% for item in vul1 %} {{ item.VID__pk }} {% endfor %}
内容的提问来源于stack exchange,提问作者xMonkey1337
相关产品推荐
相关产品推荐

