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

Django关联表查询输出问题:外键字段显示对象而非具体值

解决Django模板中关联模型显示对象实例而非字段值的问题

核心原因

出现Environment object (2)这类内容,是因为Django默认的模型__str__方法仅会输出模型类名与主键ID,没有返回你需要的name字段值。

解决方案

1. 给Env模型自定义__str__方法

在项目的models.py中修改Env模型,指定返回name字段:

class Env(models.Model):
    name = models.CharField(max_length=100)
    # 其他字段定义...

    def __str__(self):
        return self.name

修改后,无论在模板还是Django后台中,直接调用Env实例都会显示对应的name值。

2. 模板中直接指定关联字段属性

若暂时不想修改模型,可在模板里明确调用关联对象的name属性。假设ExecutionDetail中关联Env的字段名为env,模板写法如下:

{{ execution_detail.env.name }}

额外注意事项

  • 确认外键关联配置正确,比如ExecutionDetail中的关联字段定义:
    class ExecutionDetail(models.Model):
        env = models.ForeignKey(Env, on_delete=models.CASCADE)
        # 其他字段定义...
    
  • 如果是多对多关联,需要通过循环遍历取值:
    {% for env in execution_detail.env.all %}
        {{ env.name }}
    {% endfor %}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:07:32