我有一门叫做艺术家的课,这是一个艺术家的简介
class Artist_object(models.Model):
surname = models.CharField(max_length=120)
name = models.CharField(max_length=120)
Biography = models.TextField(default='Bitte Biography eingfügen', null=False)
现在,我希望这位画家可以创作多幅带有贬义的画。
class Artist_painting(models.Model):
painting1 = models.ImageField()
painting1_desc = models.CharField(max_length=120, default=None)
painting2 = models.ImageField()
painting2_desc = models.CharField(max_length=120, default=None)
如何将类Artist_painting放在Artist_object中,该类对于我查看的每位艺术家
def get_absolute_url(self): return f'/artist/{self.id}'
都有针对每个图像的描述?
这是一个关系ManyToOne
,许多Painting
S代表每个Artist
,ManyToOne
关系称为ForiegnKey
因为Artist
自己是对的关键Painting
,每个Painting
只有一个Artist
。
class Artist(models.Model):
"""
no need to call it Artist_object, Stick with pep8 (ArtistObject)
or better yet, Artist only because it's an object anyways.
"""
surname = models.CharField(max_length=120)
name = models.CharField(max_length=120)
Biography = models.TextField(default='Bitte Biography eingfügen', null=False)
class Painting(models.Model):
"""
Same naming rules apply
"""
artist = models.ForiegnKey(Artist, on_delete=models.CASCASE, related_name="paintings")
相关名称是什么?
artist
是一个类变量,通过使用artist
从Painting
实例调用该变量painting_instance.artist
,如果要获取Painting
与艺术家关联的,该使用artist_instance.related_name
,在这种情况下为artist_instance.paintings
,如果您未指定related_name
,则painting_qs
通过默认情况下,如果您不想访问,则reverse relation
表示.paintings
使用related_name="+"
什么CASCASE
啊
这是一个基本的SQL短语,这意味着Artist
在删除get时,也删除他Painting
的。
请参阅此答案以获取有关的更多详细信息ForiegnKey
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句