我想使用 Django 的模型形式强制执行特定的日期时间格式 --
Class ModelEditForm(forms.ModelForm):
date_one = forms.DateTimeField(input_formats=["%Y-%m-%d %H:%M:%S"])
class Meta:
model = MyModel
fields = (date_one,
)
我的 form.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>
如上图所示,如果输入了正确的日期时间格式(例如,2019-09-16 14:00:00),则保存了表单,但格式错误(例如,2019-09-02 14) ) 不会像其他 ModelForm 字段那样显示错误消息,例如,在 model.DecimalField 中强制执行 max_digit。使用错误的格式不会更新表单,但用户不知道为什么不保存表单。我该怎么做才能在不使用 JavaScript 输入的情况下显示错误消息。
我正在使用 Django 2.0、Python 3.6 和 widget_tweaks。
感谢您的帮助。
请您参考如下方法:
问题不明确,可以按如下方式处理 第一次添加时间和日期的时间戳 updated 更新时间和日期
在模型中
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"]
我用的是admin 你可以在 View 中使用代码
class SignUp(admin.ModelAdmin):
list_display = ["__str__", "timestamp", "updated"]
form = SignUpForm
class Meta:
model = Sign
admin.site.register(Sign, SignUp)
