2

我有一个多对多字段,我在 django 管理面板中显示。当我添加多个项目时,它们都会在显示选择器中显示为“ASGGroup 对象”。相反,我希望它们以ASGGroup.name字段设置的形式出现。我该怎么做呢?

我的模型看起来像:

class Thing(Model):
    read_groups = ManyToManyField('ASGGroup', related_name="thing_read", blank=True)

class ASGGroup(Model):
    name = CharField(max_length=63, null=True)

但我看到的 m2m 小部件显示是:

m2m显示

4

1 回答 1

3

您需要在模型上定义__unicode__(或者__str__如果您使用的是 Python 3)方法,因此:

class ASGGroup(Model):
    name = CharField(max_length=63, null=True)

    def __unicode__(self):
        return self.name

现在,当您的模型被解析为字符串时,它将返回模型的name字段,而不是类名。

于 2014-08-21T16:17:22.193 回答