Skip to main content
 首页 » 编程设计

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

2024年08月27日2798°冷暖

我有一个多对多字段,我在 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 小部件显示是:

请您参考如下方法:

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

class ASGGroup(Model): 
    name = CharField(max_length=63, null=True) 
 
    def __unicode__(self): 
        return self.name 

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