如何在Django模板中显示ForeignKey关联的父公司名称?
解决Django模板中ForeignKey关联父公司名称不显示的问题
你用{{company.parentcompany_id.companyName}}没效果是因为parentcompany_id只是Django自动生成的外键ID数值字段,它不是关联的父公司对象实例,自然没法通过.companyName访问名称属性。
正确的写法是直接用你定义的ForeignKey字段名parentcompany:
{{ company.parentcompany.companyName }}
额外给你几个排查点,避免踩坑:
- 先确认当前公司对象确实存在父公司,也就是
parentcompany字段不为空。如果可能存在空值,建议加个判断避免报错:{% if company.parentcompany %} {{ company.parentcompany.companyName }} {% else %} 无父公司 {% endif %} - 检查模型定义,确保自关联的ForeignKey配置正确,比如:
class Company(models.Model): companyName = models.CharField(max_length=100) # 自关联,允许空值,删除父公司时设为null parentcompany = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True) - 如果模板还是没内容,先在视图里打印
company.parentcompany和company.parentcompany.companyName,确认视图层能正常获取到父公司数据,排除是数据传递的问题。
内容的提问来源于stack exchange,提问作者Yan kiu Sze
相关产品推荐
相关产品推荐

