2015-09-15 69 views
1

我有一個抽象模型,我所有的其他模型繼承,它看起來像這樣。如何爲抽象模型創建Django ModelForm?

class SupremeModel(models.Model): 
    creator = models.ForeignKey(User, related_name="%(class)s_creator") 
    created = models.DateTimeField(null=True, blank=True) 
    deleted = models.BooleanField(default=False) 
    modified = models.DateTimeField(null=True,blank=True) 

    class Meta: 
     abstract = True 

然後我有一堆從這個模型繼承,有東西沿着這些路線等車型的...

class ExampleModel(SupremeModel): 
    name = models.TextField(null=False, blank=False) 
    description = models.TextField(null=False, blank=False) 

class AnotherModel(SupremeModel): 
    title = models.TextField(null=False, blank=False) 
    location = models.TextField(null=False, blank=False) 

我要創造我的幾乎所有定製的的Django模型的形式模型看起來類似於ExampleModel,但我總是希望SupremeModel中的字段被排除在外...

如何創建一個ModelForm,可用於繼承將隱藏創建者,創建者,刪除和修改,但顯示所有其他字段(in這種情況下的名稱和描述或標題和位置)。

回答

3

,你可以嘗試這個

class ExcludedModelForm(ModelForm): 
    class Meta: 
     exclude = ['creator', 'created', 'deleted', 'modified'] 

class ExampleModelForm(ExcludedModelForm): 
    class Meta(ExcludedModelForm.Meta): 
     model = ExampleModel