【问题标题】:Connect one model's ManyToManyField with another model's ForeignKey连接一个模型的 ManyToManyField 和另一个模型的 ForeignKey
【发布时间】:2016-02-14 05:55:54
【问题描述】:

让我有一个带有 ForeignKey 的模型到另一个:

class Photo(models.Model):
    name = models.CharField(max_length=64)
    album = models.ForeignKey('Album')

“相册”模型必须自动将这张照片的对象连接到它的 ManyToManyField:

class Album(models.Model):
    name = models.CharField(max_length=64)
    photoItems = models.ManyToManyField(Photo)

问题是我该怎么做?

【问题讨论】:

    标签: python django django-models many-to-many


    【解决方案1】:

    您可以通过以下方式进行操作,Django 应该会自动添加反向关系。因此,无需将相册作为外键添加到您的照片模型。这样做你可以从你的照片模型中访问“相册”。

    class Photo(models.Model):
        name = models.CharField(max_length=64)
    
    class Album(models.Model):
        name = models.CharField(max_length=64)
        photoItems = models.ManyToManyField(Photo, related_name='albums')
    

    壳牌:

    >>> photo1=Photo(name="photo number 1")
    >>> photo2=Photo(name="photo number 2")
    >>> photo1.save()
    >>> photo2.save()
    >>> album=Album(name="album1")
    >>> album.save()
    >>> album.photoItems.add(photo1,photo2)
    >>> photo1.albums.get().name
    'album1'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-30
      • 2019-10-23
      • 2017-04-24
      • 1970-01-01
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      相关资源
      最近更新 更多