我在models.py上有以下代码
class Movie(models.Model):
mov = models.CharField(max_length = 500)
def __str__(self):
return self.mov
class Atrib(models.Model):
atrib = models.CharField(max_length = 500)
def __str__(self):
return self.atrib
class Dict(models.Model):
atrib = models.ForeignKey(Atrib)
dictionary = models.ManyToManyField(Movie, related_name = 'dictionary')
我想加载一个默认的dict: {attribute1:[movie1, movie2, ...], atribute2:[movie2, movie3,...] ... }
使用Django.
首先,我使用Atrib类添加了字典的所有属性。现在我需要为每个属性添加相关的电影。我尝试做以下事情,只考虑一个属性(只是测试):
attribute1 = Atrib(atrib = atribs)
for m in dictionary[attribute]:
m = Movie(mov = m)
m.save()
attribute1.dictionary.add(m)
显示如下错误:
AttributeError: 'Atrib' object has no attribute 'dictionary'.
我为这种类型的字典做的模型正确吗?为什么会出现这个错误呢?我是Django的新手,我有点迷路了!
提前感谢!
首先你需要保存attribute1 = Atrib(atrib = atribs)
do attribute1.save()
接下来,在Attribute
对象创建之后,没有与之相关的Dictionary
对象。您需要首先创建它,并将其设置为此对象,然后您就可以进行您想要的操作。
注意:访问attribute.dict
需要OneToOne关系,而不是ForeignKey。