【发布时间】:2017-01-12 10:43:12
【问题描述】:
我正在尝试在 Django 中定义一些 ManyToMany 关系,但是当我尝试创建相关对象时出现错误。
我的模型.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/处的AttributeError
'PerfumeBrand' 对象没有属性'person'
我尝试在代码和管理面板中都保存,出现同样的错误。
由于这是我第一次在 Django 项目中需要多对多关系,所以我有点困惑,我没有找到任何解决问题的方法。
你有什么想法吗?
【问题讨论】:
-
确实,PerfumeBrand 没有属性
person。那么为什么在__unicode__方法中使用self.person呢?
标签: python django django-models many-to-many