0
我正在使用Python 2.7和Django 1.7.9。我已經基於Django的MPTT和模型ManyToManyField分類等級:將父類別自動添加到模型的ManyToManyField時,將其分配給子類別
class Item(models.Model):
category = models.ManyToManyField(Category)
title = models.CharField(max_length=255)
分配給它的孩子類別時我怎樣才能自動添加父類的項目的ManyToManyField?例如。我有一個名爲「音樂」的父類別,其中有子類別,「搖滾」,「金屬」,「經典」等。 當我爲該項目指定「經典」時,必須自動添加「音樂」。 什麼是正確的做法?我試圖這樣做,這是錯誤的:
def save(self, *args, **kwargs):
if self.category.parent:
for parent in self.category.get_ancestors:
self.category.add(parent)
super(Item, self).save(*args, **kwargs)
爲什麼它是錯誤的,它給你什麼?什麼是get_ancestors是? –
django-mptt文檔有幫助嗎? http://django-mptt.github.io/django-mptt/tutorial.html有一個相當類似的例子 – djq
get_ancestors() - 給出所有的父類別。 ManyToManyField項目在保存之前不能添加到模型中。我知道這個django-mptt的例子,但這不是我所需要的。 – Swallow