0

我有一个django应用程序,我想使用模型继承。该应用程序包含一个超级模特类Article这里是它的代码django模型继承和管理应用程序

class Article(models.Model): 
    english_title = CharField(max_length=200) 
    arabic_title = CharField(max_length=200) 
    english_body = HTMLField() 
    arabic_body = HTMLField() 
    enabled = BooleanField() 

    def __unicode__(self): 
     return self.english_title 

    def get_body(self, locale): 
     if locale == "ar" : 
      return self.arabic_body 
     else: 
      return self.english_body 

    def get_title(self, locale): 
     if locale == "ar" : 
      return self.arabic_title 
     else: 
      return self.english_title 

,并有一个名为History子类扩展该类这里是它的代码

class History(Article, IHasAttachments): 
    date = DateField(auto_now_add=True) 

我的问题出现在管理在插入新条目时,历史记录模型中的dateField(日期)未出现在管理员表单中的应用程序。

注:我使用的Django TinyMCE的,djnago-filebrowser和Django的格拉佩利

会是什么问题呢?

回答

2

我认为这个问题是在历史模型设置auto_now_add =真,这将防止您的日期字段上的管理员显示,请检查约Model field reference Django的文档:

当前实现,设置auto_now或auto_now_add为true,将导致该字段可编辑的=假和空白= true设置。

而关于Field.editable

如果为False,该字段将不会显示在管理或任何其他的ModelForm。

如果你想要编辑的,而且有一个默认值,试试这个:

class History(Article, IHasAttachments): 
    date = DateField(default=datetime.date.today) 
+0

可以在你'编辑= TRUE;覆盖它? – 2013-02-27 12:50:02

0

如果添加auto_now=True这个领域将在每次修改更新。所以它会在逻辑上正常,你不能编辑它。

如果你想,当你创建一个实例添加自动日期,我建议你:

from django.utils.timezone import now 

class History(Article, IHasAttachments): 
    date = DateField(default=now())