2016-12-21 91 views
1

我試圖將DateTimeWidget和初始值添加到我的模型的due_date字段中,我按照我所知道的儘可能接近文檔。無論我嘗試什麼,我都無法在我的ModelForm類中聲明域以覆蓋模型中現有的字段。無法在Django ModelForm中覆蓋模型字段

https://docs.djangoproject.com/en/1.9/topics/forms/modelforms/#overriding-the-default-fields

如果我單獨添加一個Widget它的工作原理,但我不知道如何,除非我設置在模型中添加默認的初始值。有人能指出我做錯了什麼嗎?

from django import forms 

import datetime 
from datetimewidget.widgets import DateTimeWidget 


from .models import EstRequest 


def due_date(): 
    due_date = (datetime.datetime.now() + datetime.timedelta(days=1)) 
    return due_date 


class EstRequestModelForm(forms.ModelForm): 

    class Meta: 
     model = EstRequest 
     due_date = forms.SplitDateTimeField(widget=forms.SplitDateTimeWidget, initial=due_date) 

     fields = [ 
      'market', 
      'plan', 
      'builder', 
      'due_date', 
      'notes', 
     ] 

     # widgets = { 
     #  # Use localization and bootstrap 3 
     #  'due_date': DateTimeWidget(attrs={'id': "due_date"}, usel10n=True, bootstrap_version=3) 
     # } 

回答

2

其實你definfing在錯誤的地方領域,它應該是外Meta類:

class EstRequestModelForm(forms.ModelForm): 

    due_date = forms.DateTimeField(widget=forms.DateTimeInput, initial=due_date) 

    class Meta: 
     model = EstRequest 
     fields = [ 
      'market', 
      'plan', 
      'builder', 
      'due_date', 
      'notes', 
     ] 
+0

我覺得像這樣的傻瓜!謝謝你指出! – whieronymus

相關問題