models.py
class Gallery(models.Model):
name = models.CharField(max_length=100)
class Image(models.Model):
in_gallery = models.ManyToManyField(Gallery, blank=True)
title = models.CharField(max_length=100)
class ImageInGallery (models.Model):
image = models.ForeignKey(Image, blank=True, null=True, on_delete=models.DO_NOTHING)
gallery = models.ForeignKey(Gallery, blank=True, null=True, on_delete=models.DO_NOTHING)
Click to view the screenshot of my admin page of adding a Gallery
Click to view the screenshot of my admin page of adding an Image
看一下屏幕截图....
(为简单起见,忽略我没有在models.py代码中显示的字段)查看我在管理页面中添加Gallery
和Image
的差异..... 我不能将图片添加到图库
如何解决这个问题?
答案 0 :(得分:0)
ImageInGallery的目的是什么?
您必须使用through
参数。
由于您在ManyToManyField
中定义了Image
,因此您已经建立了双边关系。
如果您希望所有与image1
Image
实例相关的图库都可以执行以下操作:
image1.galleries.all()
如果您想要与gallery1
Gallery
实例相关的图片,您可以这样做:
galleries.image_set.all()
In documentation,您的图库是'出版物'和图像是'文章'。