2011-03-06 39 views
0

我的模型以下组(简称为清楚起见):问题在儿童模特继承get_absolute_url

第一组:

class Web(Link): 
    ideas = models.ManyToManyField(Idea, blank=True, null=True) 
    precedents = models.ManyToManyField(Precedent, blank=True, null=True) 

    categories = GenericRelation(CategoryItem) 

    @permalink 
    def get_absolute_url(self): 
     return ('resources-link-detail', [str(self.slug)]) 

这是一个孩子:

class Link(models.Model): 
    title = models.CharField(max_length=250) 
    description = models.TextField(blank=True) 
    website = models.URLField(unique=True) 
    slug = models.SlugField(unique_for_date='pub_date') 
    ... 

    @permalink 
    def get_absolute_url(self): 
     return ('link-detail', [str(self.slug)]) 

第二套

class ResourceOrganization(Organization): 
    ideas = models.ManyToManyField(Idea, blank=True, null=True) 
    precedents = models.ManyToManyField(Precedent, blank=True, null=True) 

    categories = GenericRelation(CategoryItem) 

    @permalink 
    def get_absolute_url(self): 
     return ('resources-org-detail', [str(self.slug)]) 

这是一个孩子:

class Organization(Contact): 
    name = models.CharField(max_length=100) 
    org_type = models.PositiveSmallIntegerField(choices=ORG_CHOICES) 
    ... 

    @permalink 
    def get_absolute_url(self): 
     return ('org-detail', [str(self.slug)]) 

这是一个孩子:

class Contact(models.Model): 
    description = models.TextField(blank=True, null=True) 
    address_line1 = models.CharField(max_length=250, blank=True) 
    address_line2 = models.CharField(max_length=250, blank=True) 
    slug = models.SlugField(unique=True) 
    ... 

    class Meta: 
     abstract = True 

的 “ResourceOrganization” 模型是正确overiding的get_absolute_url方法是添加 “类别” 通用关系。

“Web”模型不是。

我不知道为什么。希望有任何见解。

P.S.我意识到可能有更好的方法来实现这个功能,但我暂时坚持下去,直到我可以重构并希望得到它的工作。

谢谢。

+0

看起来问题是自定义管理器没有被继承。 –

回答