2011-03-06 58 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

看起來問題是自定義管理器沒有被繼承。 –

回答