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())