2017-02-21 10 views
0

page.item_setを使用してページモデルの関連アイテムを取得できないのはなぜですか?あなたの代わりに関係itemを命名しましたので関連セットが取得できない

class Page(models.Model): 
    survey = models.ForeignKey(Survey) 
    title = models.CharField(max_length=256) 
    parent = models.ForeignKey("Page", blank=True, null=True, related_name="parent_page") 

    def __unicode__(self): 
     return self.title 

class Item(models.Model): 
    page = models.ForeignKey(Page, related_name="item") 
    key = models.CharField(max_length=256) 
    value = models.CharField(max_length=256) 
    image = models.ImageField(upload_to="builder/item", null=True, blank=True) 
    options = models.ManyToManyField(Option, blank=True) 
    goto = models.ForeignKey(Page, null=True, blank=True, related_name="goto_page") 

    def __unicode__(self): 
     return self.value 

答えて

2

'Page' object has no attribute 'item_set' 

マイコード: は、私は次のエラーを取得します。代わりにpage.item.all()を試してください。

related_nameのデフォルトは、クラス名の小文字のバージョンで、_setが付加されています。しかし、あなたが気づいたように、必要に応じて上書きすることができます。

1

related_nameのアイテムは「item_set」ではなく「item」なので、Page.itemと呼びます。すべてのアイテムを取得するには、Page.item.all()と呼んでください。ただし、Item.pageフィールドのrelated_name属性を省略すると、名前はデフォルトでitem_setになります。

関連する問題