2016-08-17 9 views
0

フィールド['created_at']を非表示のdatetimeフィールドとして送信する作成フォームがあります。私はdjango.utils import timezoneからインポートしています。これは別のモデルで動作しています。値が空白である理由を知りたい人はいますか?助けてくれてありがとう!Django形式DateTimeField初期値は空白です

形式:

class CreateForm(ModelForm): 
    class Meta: 
     model = Animal 
     fields = ('name', 'course', 'core', 'animal_group', 'image_on', 'image_off', 'created_at',) 
     labels = { "image_on": "Animal Image", "image_off": "Incompleted Animal Image", } 
     widgets = { 
      'name': forms.Textarea(attrs={'cols': 80, 'rows': 1}), 
     } 

    def __init__(self, *args, **kwargs): 
     super(CreateForm, self).__init__(*args, **kwargs) 
     self.fields['created_at'] = forms.DateTimeField(initial = timezone.now()) 
     self.fields['created_at'].widget = forms.HiddenInput() 

    def clean(self): 
     cleaned_data = self.cleaned_data 
     return cleaned_data 

しかし、テンプレートが隠された入力があるレンダリングが、それは価値がありません。ここで enter image description here

テンプレートコードスニペットです:

<form action="/support/add_animal/" enctype="multipart/form-data" method="POST"> 
     {% csrf_token %} 
     {{ create_form | crispy }} 
     <br> 
     <input type="submit" class="btn btn-success" value="Save"> 
    </form> 
+1

おそらく無関係ですが、それはきれいに呼び出すための推奨された方法ではありません。代わりに '' 'cleaned_data = super(CreateBadgeForm、self).clean()' ''を実行してください。ここにそのセクションがあります... https://docs.djangoproject.com/ja/dev/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other –

+0

@ luke_ausヒントをありがとう! – Dan

+0

これで問題は解決しましたか? –

答えて

0

むしろよりは、これで壁に頭をぶつけ続け、私がモデルにcreated_atと時刻を設定するのではなく他の場所でそれを心配することにしました。

属性を(default=timezone.now)に設定し、それが私の不幸を治しました。

関連する問題