[英]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.