class Gallery(models.Model):
"Represents a set of images."
# maybe a title or other fields?
class Image(models.Model):
"Represents one image."
# field names are usually lowercase, for clarity
image = models.ImageField(upload_to="gallery")
gallery = models.ForeignKey(Gallery, related_name='images')
# you might want more fields here, e.g. title, alt_text, etc
class Tour(models.Model):
gallery = models.OneToOneField(Gallery)
class Agency(models.Model):
gallery = models.OneToOneField(Gallery)
有几种不同的方法可以做到这一点,这取决于您是否希望在旅游团和旅行社之间重复使用图像,以及使用一个或两个图像类是否合理。在不了解更多用例的情况下,我可能会这样做:
这就建立了一个名为
Gallery
的中介模型,Tour
和Agency
都可以引用。如果希望每个Tour
或Agency
允许多个Gallery
,或者希望在不同对象之间重用库,则可以使用ForeignKey
而不是OneToOneField
。如果希望在库之间共享图像,可以使用ManyToManyField
而不是Image
类中的ForeignKey
。你知道吗相关问题 更多 >
编程相关推荐