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

Django模型text属性不返回文本,admin面板显示对象而非输入内容求助

问题根因

你的代码存在两个缩进和方法缺失的错误:

  • Topic模型没有定义__str__方法,Django对没有自定义字符串表示的模型,默认返回模型类名 object (主键ID)的格式,这就是你看到Topic object (1)这类输出的直接原因
  • Entry模型的Meta类、__str__方法缩进错误,完全写在了Entry类的外部,不会被Entry模型识别调用,因此Entry也使用了默认的字符串返回格式

修复后的完整模型代码

from django.db import models

class Topic(models.Model):
    """A topic the user is learning about"""
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)
    
    # 给Topic添加__str__方法
    def __str__(self):
        """Return a string representation of the topic"""
        return self.text

class Entry(models.Model):
    """Something specific learned about a topic"""
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    # Meta类缩进改到Entry内部
    class Meta:
        verbose_name_plural = 'entries'
    
    # __str__方法缩进改到Entry内部
    def __str__(self):
        """Return a string representation of the model"""
        return f"{self.text[:50]}"

后续操作

修改代码后不需要执行数据库迁移(没有修改数据库字段结构),直接重启Django开发服务即可,admin面板和前端都会正常显示对应的文本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:54:05