Django 为嵌套外键定义 __str__

标签 django

使用这样的嵌套模型:

class Gov(models.Model):
    name = models.CharField(max_length=20)
    def __str__(self):
        return self.name

class State(models.Model):
    parent = models.ForeignKey(Gov)
    abbreviation = models.CharField(max_length=100)
    def __str__(self):
        return self.parent.name

class State_Park(models.Model):
    parent = models.ForeignKey(State)
    park_name = models.CharField(max_length=100)

如何将类 State_Park__str__ 设置为 class Gov 中的 name

我试过:

def __str__(self):
    return self.parent.parent.name

这没有用。

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Users\ccsv\Envs\wenv\lib\site-packages\django\db\models\query.py", line 229, in __repr__
    return '<%s %r>' % (self.__class__.__name__, data)
  File "C:\Users\ccsv\Envs\wenv\lib\site-packages\django\db\models\base.py", line 589, in __repr__
    u = six.text_type(self)
  File "C:\Users\ccsv\Desktop\wenv\mysite\stats\models.py", line 89, in __str__
    return self.parent.parent.name()
TypeError: 'str' object is not callable

最佳答案

 File "C:\Users\ccsv\Desktop\wenv\mysite\stats\models.py", line 89, in __str__
return self.parent.parent.name()

根据错误日志,我认为您应该删除行尾的括号。

    def __str__(self):
        return self.parent.parent.name

关于Django 为嵌套外键定义 __str__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46286776/

相关文章:

python - 在 Django 中,我如何返回与模型相关的项目总数?

javascript - Django:带有整数列表的表单

python - 如何将类呈现为函数?

python - Django - get_by_natural_key() 恰好接受 3 个参数(给定 2 个)

python - 我可以使用 Django Channels 实时显示 MQTT 消息吗?

Django 模板对象类型

python - Django _meta 多对多

python - 如何在 Django 中获取用户 IP 地址?

Python Fabric + 数据库中的多主机配置

python - django-social-auth redirect_uri 无效