簡體   English   中英

Django:ManyToMany 關系錯誤(對象沒有屬性)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM