在django管理站点中为ManyToMany对象显示字段名称而不是整个对象

时间:2014-04-10 22:12:15

标签: python django django-admin

我的模型如下:

class Retailer(BaseModel):
    brand = models.ManyToManyField('brands.Brand',blank=True)

class Brand(BaseModel):
    name = models.CharField(max_length=100, unique=True)
    website = models.URLField(max_length=500, blank=True, default='')

我的管理课程如下:

class RetailerAdmin(admin.ModelAdmin):
    filter_horizontal = ('brand',)

管理网站确实为我显示了多选字段,但品牌列表中的每个条目都显示为Brand object,这对我没有意义。我希望每个条目都显示为该品牌的名称字段。我该怎么办?

1 个答案:

答案 0 :(得分:11)

您可以将__unicode__(python 2)或__str__(python 3)方法添加到您的模型中,以便它看起来像这样

class Brand(BaseModel):
    name = models.CharField(max_length=100, unique=True)
    website = models.URLField(max_length=500, blank=True, default='')

    def __unicode__(self):
        return self.name