Django:管理界面中多对多项的名称

时间:2014-08-21 16:13:27

标签: python django django-models django-admin m2m

我有很多字段,我在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 display

1 个答案:

答案 0 :(得分:3)

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

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

    def __unicode__(self):
        return self.name

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