AM/PM无法在django HTML模板中工作

0md85ypi  于 2023-01-03  发布在  Go
关注(0)|答案(1)|浏览(119)

当我使用AM/PM时,我收到一个错误。
输入有效的日期/时间。
但是没有使用AM/PM,我没有得到任何错误。我在我的HTML模板中使用的是Bootstrap-DateTimepicker
下面是我的代码:

    • 来自. py**
class BlogForm(ModelForm):
    class Meta:  
        model = Blog
        fields = ['title','body','published']
        widgets = {'title': forms.TextInput(attrs={'class':'form-control','placeholder': 'Title'}),
                   'published': forms.DateTimeInput(format=['%Y-%m-%d %I:%M %p'])}
    • HTML文件**
<form method="POST"  enctype="multipart/form-data">
    {{from}}
</form>

<script>
    $(function () {
        $("#datetimepicker1").datetimepicker({
          format: 'YYYY-MM-DD hh:mm:ss a', 
        });
    });
</script>
omjgkv6w

omjgkv6w1#

在你的代码中,你试图通过设置 *widget * 的格式来提供格式,例如DateTimeInput,但问题是这个格式只用于输入的 initial 值,而不是用来解析提交的值。相反,你还想把input_formats kwarg传递给 form field,例如DateTimeField [Django docs]。
另外,您的格式似乎缺少在javascript中设置的秒数。在这种情况下,您可能需要在格式字符串中添加%S

class BlogForm(ModelForm):
    published = forms.DateTimeField(
        input_formats=['%Y-%m-%d %I:%M:%S %p'],
        widget=forms.DateTimeInput(format='%Y-%m-%d %I:%M:%S %p')
    )
    
    class Meta:
        model = Blog
        fields = ['title','body','published']
        widgets = {
            'title': forms.TextInput(attrs={'class':'form-control','placeholder': 'Title'}),
        }

相关问题