我有一个艺术家,他有很多画作,所以很多对一的关系。所以我得到了class Artist(models.Model): name = models.CharField(max_length=120) age = models.IntField()class Paintings(models.Model): painting = models.ImageField() painting_name = models.CharField(max_length=120, default='', null=True) artist = models.ForeignKey( 'Artist', related_name='paintings', on_delete=models.CASCADE, verbose_name= 'Künstler' )现在,如果我根据艺术家创作一幅新的绘画,它不会向我显示艺术家的确切名称,只会显示艺术家对象[id]在我的里面我试图定义admin.pyartist = Artist.name list_display = ('image_tag', artist, 'painting_name')但这是不允许的。那么,如何将艺术家对象(id)替换为艺术家的实际对象(id)呢?name
1 回答
白板的微信
TA贡献1883条经验 获得超3个赞
在模型中,必须定义一个函数:Artist
__str__
def __str__(self): return self.name # Or whatever way you want your Artist to show
这说明了如何打印该对象。Django
来自詹戈文档:
__str__()
每当调用对象时,都会调用该方法。詹戈在许多地方使用。最值得注意的是,在Django管理站点中显示对象,并在显示对象时将其作为插入到模板中的值。因此,您应该始终从该方法返回一个漂亮的、人类可读的模型表示形式。__str__()
str()
str(obj)
__str__()
添加回答
举报
0/150
提交
取消