Django表单DateTimeField的初始值为空

时间:2016-08-17 00:01:09

标签: python django-forms timezone hidden-field

我有一个创建表单,我在其中提交字段[' created_at']作为隐藏日期时间字段。我从django.utils导入时区导入,并在另一个模型上工作。有没有人对价值为空的原因有所了解?谢谢你的帮助!

形式:

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 个答案:

答案 0 :(得分:0)

我选择在模型中设置created_at时间而不是在其他地方担心,而不是继续用我的头撞墙。

将属性设置为(default=timezone.now),这可以解决我的困境。