如何使用DateTimeField和input格式在Django模型表单中显示验证错误

2024-04-25 19:21:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用Django的模型表单强制执行一个特定的日期时间格式--

Class ModelEditForm(forms.ModelForm):
    date_one = forms.DateTimeField(input_formats=["%Y-%m-%d %H:%M:%S"])

    class Meta:
    model = MyModel
    fields = (date_one,
              )

我的表单.html文件--

<form method="POST" enctype="multipart/form-data">
    <div class="row">
        <div class="form-group col-sm-12 col-md-12">
            <label> Enter date and time in this format "%Y-%m-%d %H:%M:%S"  </label>
            {% render_field form.date_one class="form-control"%}
        </div>
       {% csrf_token %}
             <div class="row">
            <div class="form-group col-sm-6 col-md-6">
                <button class="btn btn-primary" type="submit">Save</button>
            </div>
</form>

screenshot of the form

如上图所示,如果输入了正确的日期时间格式(例如,2019-09-16 14:00:00),表单将被保存,但错误的格式(例如,2019-09-02 14)不会像其他ModelForm字段那样显示错误消息,例如,在中强制使用max\ u数字型号.DecimalField. 使用错误的格式不会更新表单,但用户不知道为什么不保存表单。如何在不使用JavaScript输入的情况下显示错误消息。你知道吗

我正在使用Django 2.0、python3.6和widget\u调整。你知道吗

谢谢你的帮助。你知道吗


Tags: djangodivform表单date格式错误时间
1条回答
网友
1楼 · 发布于 2024-04-25 19:21:56

这个问题不清楚,但你可以做如下处理 首次添加时间和日期的时间戳 更新以更新时间和日期

在模型中

class Sign(models.Model):
email = models.EmailField()
FullName = models.CharField(max_length=50, blank=False, null=True)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)

def __str__(self):
    return self.email

形式

class SignUpForm(forms.ModelForm):
class Meta:
    model = Sign
    fields = ["FullName", "email"]

我是useadmin,你可以在视图中使用代码

class SignUp(admin.ModelAdmin):
    list_display = ["__str__", "timestamp", "updated"]
    form = SignUpForm

    class Meta:
        model = Sign
admin.site.register(Sign, SignUp)

enter image description here

相关问题 更多 >