Django:ManyToMany协会没有工作

时间:2018-04-26 14:29:36

标签: django django-models

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代码中显示的字段)查看我在管理页面中添加GalleryImage的差异..... 我不能将图片添加到图库

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

ImageInGallery的目的是什么?

您必须使用through参数。

由于您在ManyToManyField中定义了Image,因此您已经建立了双边关系。

如果您希望所有与image1 Image实例相关的图库都可以执行以下操作:

image1.galleries.all()

如果您想要与gallery1 Gallery实例相关的图片,您可以这样做:

galleries.image_set.all()

In documentation,您的图库是'出版物'和图像是'文章'。