2016-02-14 102 views
0

讓ManyToManyField我有ForeignKey的一個模型到另一個:連接一個模型與另一個模型的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) 

而問題是我該如何做到這一點?

回答

1

你可以這樣做,Django應該自動添加一個反向關係。因此,不需要將專輯作爲外鍵添加到Photo模型中。這樣做可以訪問Photo模型中的「相冊」。

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' 
相關問題