2016-04-27 14 views
2

Ich habe den folgenden Code, um den Anfangswert für ein DateField und CharField festzulegen. CharFields Anfangswert wurde korrekt gesetzt, aber der Anfangswert des DateFields ist immer noch leer.Django-Formular: Festlegen des Anfangswerts für DateField

class MyForm(forms.ModelForm): 
    dummy = fiscal_year_end = forms.CharField() 
    date = forms.DateField() 

    def __init__(self, *args, **kwargs): 

     super(MyForm, self).__init__(*args, **kwargs) 
     today = datetime.date.today() 
     new_date = datetime.date(year=today.year-1, month=today.month, day=today.day) 
     self.fields["date"].initial = new_date 
     self.fields["dummy"].initial = 'abc' 
+1

Wo haben Sie Ihr Modell auf dem Formular definiert? – AKS

Antwort

3

können Sie den Standardwert in der gleichen Zeile gesetzt, wo Sie die Datefield erstellen möchten:

date = forms.DateField(initial=datetime.date.today) 

Oder wenn Sie ein bestimmtes Datum übergeben wollen, können Sie eine funciton erstellen und weitergeben auf die Datefield, wie folgt:

def my_date(): 
    return datetime.date(year=today.year-1, month=today.month, day=today.day) 


class MyForm(forms.ModelForm): 
    #... 
    date = forms.DateField(initial=my_date) 
    #... 

Außerdem könnten Sie die docs für mehr Hilfe zu diesem Thema überprüfen;)

Verwandte Themen