0

第一次在这里发帖 :) 我正在通过一个简单的相册应用程序学习 python 和 django 框架。我现在只在管理站点工作,而 django 是 v.2.1。

有一个相册表和一个图像表。一个相册可以有很多张图片,一张图片可以关联很多张相册,所以我通过中间表建模了多对多的关系。

我的相册更改页面有一个内联的图像。这一切都很简单,而且效果很好。

除了两个父表PK之外,中间表还有一个额外的布尔字段“isCover”,以便用户可以选择相册中的图像作为封面。但是,在内联中没有办法强制只检查一张图像作为封面。另外,如果用户没有选择,我希望自动选择第一张图像作为封面的功能。

那怎么能做到呢?

提前感谢您的任何见解!乔

4

1 回答 1

0

您可以在多对多字段中使用 through 关键字创建中间表:

 class Album(models.Model):
     name = models.CharField(max_length=100)
 class Image(models.Model):
    image = models.ImageField()
    album = models.ManyToManyField(Album, through=AlbumImage)

 class AlbumImage(models.Model):
  image = models.ForeignKey(Image)
  album = models.ForeignKey(Album)
  is_cover = models.BooleanField()
于 2018-10-15T06:19:19.667 回答