2017-05-01 92 views
0

我使用Django 1.9,並有模型例如爲:如何在模型表單中使用父母模型字段?

class TimeStampedModel(models.Model): 
    created = models.DateTimeField(auto_now_add=True) 
    modified = models.DateTimeField(auto_now=True) 

    class Meta: 
     abstract = True 

後,我用這個模型來添加createdmodified到我的模特一些繼承。但我不能將這些字段用於表單。例如: -

class Customer(TimeStampedModel): 
    first_name = models.CharField(max_length=250, blank=True, 
            null=True, default=None) 
    last_name = models.CharField(max_length=250, blank=True, 
           null=True, default=None) 

和表單代碼:

class CustomerForm(forms.ModelForm): 
    class Meta: 
     model = Customer 
     fields = ('first_name', 'last_name', 'modified') 
     readonly_fields = ('modified',) 

我得到一個錯誤:

django.core.exceptions.FieldError: Unknown field(s) (modified) specified for ... 

我怎麼能這個字段添加到窗體?我在數據庫模式中,但Django的形式並沒有得到它。

回答

1

auto_now=True當您撥打Model.save()時,字段會自動更新。 更多細節https://docs.djangoproject.com/en/1.11/ref/models/fields/#datefield auto_now =真田無法從訪問的ModelForm, 當前實現,設置auto_now或auto_now_add爲true,將導致該字段可編輯的=假和空白= true設置。

+0

你的意思是沒有辦法表現出來?我不想改變它,但顯示。 –

+0

auto_now = True字段在表單中不可用。因爲表單是用於編輯值的。所以做一件事情,創建一個html輸入,並通過current_time''。這將顯示您的模板中的當前時間。 –

1

,因爲使用的是1.9中存在的問題,這是從1.10

因此改變了你可以更新你的Django版本,以便您可以使用此

相關問題