2014-10-31 69 views
0

访问Django的M2M自我这是我的模型:如何通过模型

class Store_product(models.Model): 
    breakdown_lst = models.ManyToManyField('self',symmetrical=False,through='Kit_breakdown_assoc',related_name='kit_lst') 

class Kit_breakdown_assoc(models.Model): 
    kit = models.ForeignKey(Store_product,related_name='breakdown_assoc_lst') 
    breakdown = models.ForeignKey(Store_product,related_name='kit_assoc_lst') 
    qty = models.IntegerField() 

我想要做的是:

sp = Store_product.objects.get(pk=sp_id) 
sp.kit_breakdown_assoc_set.all() --> error: 'Store_product' object has no attribute 'kit_breakdown_assoc_set' 

Django的文件提到一个“规则”与一个“自我M2M '不会将xxx_set属性添加到类中。我认为我的案子只是这个“规则”的特例,因为它有一个中间模型。我发现不方便,我无法访问我的通关管理器。我错过了什么,或者这个功能可以实现吗?

回答

0

的问题是,因为你已经正确地指定了相关的名称,breakdown_assoc_lst,您的中间模型管理器不被sp.kit_breakdown_assoc_set访问,而是通过sp.breakdown_assoc_lst,那是你在相关的名称来指定的。