[英]Django : ManyToMany relation error ( object has no attribute)
我试图在 Django 中定义一些 ManyToMany 关系,但是当我尝试创建相关对象时出现错误。
我的models.py:
class PerfumeBrand(models.Model):
class Meta:
verbose_name = "Marque de parfum"
verbose_name_plural = "Marques de parfum"
name = models.CharField(max_length=32)
def __str__(self):
return self.person.first_name + ' ' + self.person.last_name.upper() + ': ' + self.name
class Person(models.Model):
class Meta:
verbose_name = "Personne"
verbose_name_plural = "Personnes"
first_name = models.CharField(max_length=32, )
last_name = models.CharField(max_length=32)
email = models.EmailField(unique=True)
# Here is the ManyToMany relation
perfume_brands = models.ManyToManyField(PerfumeBrand)
问题是,当我尝试在我的数据库中保存 PerfumeBrand 对象时,出现此错误:
/admin/visualize/perfumebrand/add/ 处的属性错误
'PerfumeBrand' 对象没有属性 'person'
我试图同时保存在代码和管理面板中,发生了同样的错误。
由于这是我第一次在 Django 项目中需要多对多关系,我有点困惑,我没有找到任何解决我问题的方法。
你有什么想法吗?
PerfumeBrand
类从不定义变量person
,只定义name
。
在PerfumeBrand
对象上,您已经声明了这个
def __str__(self):
return self.person.first_name + ' ' + self.person.last_name.upper() + ': ' + self.name
但person
不是PerfumeBrand
的属性。 该函数应该在Person
类下(之前有一些更改),并且您应该在PerfumeBrand
类中使用如下所示的内容:
def __str__(self):
return self.name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.