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 (дата) в модели History не появляется в форме администратора при вставке новой записи.

Примечание: Я использую Джанго-TinyMCE, djnago-FileBrowser и Джанго-Grappelli

Что бы быть проблема?

ответ

2

Я думаю, что проблема в вашей модели истории вы установили auto_now_add = True, который позволит предотвратить поле даты отображается на админ, пожалуйста, проверьте Джанго документ о Model field reference:

в настоящее время реализована, установка auto_now или auto_now_add в значении True заставит поле, чтобы иметь изменяемый = False и пустой = True набора.

А про Field.editable:

Если False, то поле не будет отображаться в админке или любой другой ModelForm.

Если вы хотите редактируемые, но и имеет значение по умолчанию, попробуйте следующее:

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

это может переопределить его с 'редактируемые = true'? –

0

Если добавить auto_now=True это поле будет обновление на каждой модификации. Таким образом, это будет логически нормальным, вы не сможете его отредактировать.

Если вы хотите добавить автоматическую дату, когда вы создаете экземпляр, то я предлагаю вам следующее:

from django.utils.timezone import now 

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