2016-12-21 6 views
1

Я пытаюсь добавить DateTimeWidget и начальное значение в поле due_date моей модели. Я следую документации, насколько я могу судить. Независимо от того, что я пытаюсь, я не могу получить поле, объявленное в моем классе ModelForm, чтобы переопределить существующее поле в модели.Невозможно переопределить поле модели в Django ModelForm

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

Если добавить виджет отдельно работает, но тогда я не знаю, как добавить начальное значение, если я не установлен по умолчанию в модели. Может кто-то указать, что я делаю неправильно?

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

Смежные вопросы