Django - 如何显示来自伪造密钥对象的属性(名称)?

我有一个艺术家,他有很多画作,所以很多对一的关系。所以我得到了


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]

http://img2.mukewang.com/632980670001e5bc06460560.jpg

在我的里面我试图定义admin.py


artist = Artist.name 

list_display = ('image_tag', artist, 'painting_name')

但这是不允许的。那么,如何将艺术家对象(id)替换为艺术家的实际对象(id)呢?name


长风秋雁
浏览 83回答 1
1回答

白板的微信

在模型中,必须定义一个函数: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__()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python