[英]Django : how to display actual objects in admin
我的模型定义如下:
class Artist(models.Model):
"""Model class to record Artist"""
artist_name = models.CharField(max_length=200)
artist_id = models.CharField(unique=True, max_length=50)
# similar relationship is defined.
related_to = models.ManyToManyField("self", null=True, blank=True)
def __unicode__(self):
return self.artist_name
当我对django管理面板中的艺术家使用“删除”管理操作时,我得到:
Artist: trojan
From_artist-to_artist relationship: Artist_related_to object
From_artist-to_artist relationship: Artist_related_to object
From_artist-to_artist relationship: Artist_related_to object
From_artist-to_artist relationship: Artist_related_to object
Artist: betty
From_artist-to_artist relationship: Artist_related_to object
From_artist-to_artist relationship: Artist_related_to object
我如何获得删除期间被警告的实际关系?
换句话说,如何人性化“ Artist_related_to object”以反映实际的艺术家姓名。
您在管理删除问题中看到的是Django透明地为您创建的ManyToMany桥模型的实例。
如果要更改其__unicode__
表示形式,则必须定义自己的桥模型,并将ManyToManyField
设置为与through参数一起使用。
例:
class ArtistRelationship(models.Model):
from_artist = models.ForeignKey('Artist')
to_artist = models.ForeignKey('Artist')
def __unicode__(self):
return u"%s - %s" % (self.from_artist.name, self.to_artist.name)
class Artist(models.Model):
name = models.CharField(max_length=200)
# ... more fields ...
related_to = models.ManyToManyField("self", null=True, blank=True,
through=ArtistRelationship)
返回值必须是字符串而不是CharField,请尝试以下操作: return u"%s" % (self.artist_name, )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.