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



我的模型如下:

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,这对我来说毫无意义。我希望每个条目都显示为该品牌的名称字段。我该怎么办?

您可以将__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

最新更新