2016-12-21 55 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

相关问题