gpt4 book ai didi

python - 使用通用编辑 UpdateView 时在表单验证期间自定义 error_messages

转载 作者:行者123 更新时间:2023-12-01 09:24:46 24 4
gpt4 key购买 nike

我目前在使用通用编辑UpdateView时在表单验证期间用于自定义error_messages的解决方案如下

模型.py

from django.db import models

class Employee(models.Model):
first_name = models.CharField(max_length=100, verbose_name="Name")
last_name = models.CharField(max_length=100, verbose_name="Surname")
date_of_birth = models.DateField(blank=True, null=True, verbose_name="Birthday")

表单.py

from django import forms
from .models import Employee

class ModelFormWithCustomErrorMessages(forms.ModelForm):
class Meta:
model = Employee
fields = '__all__'
error_messages = {'date_of_birth': {'invalid': 'Custom invalid error message'}}

views.py:

from .models import Employee
from .forms import ModelFormWithCustomErrorMessages

class EmployeeUpdateView(UpdateView):
model = Employee
form_class = ModelFormWithCustomErrorMessages

我不太喜欢这里的是,您必须为要自定义 error_messages 的每个模型创建单独的 ModelForm (ModelFormWithCustomErrorMessages)。

仅为模型字段添加参数 error_messages 不适用于表单:

class Employee(models.Model):
date_of_birth = models.DateField(blank=True, null=True, error_messages={'invalid': 'Custom invalid error message'})

使用通用编辑 View 时是否有更好的方法来自定义 error_messages?

最佳答案

您可以使用modelform_factory()函数,可能是这样的:

from django import forms

class EmployeeUpdateView(UpdateView):
model = Employee
form_class = forms.modelform_factory(
model=Employee,
fields='__all__',
error_messages={
'date_of_birth': {'invalid': 'Custom invalid error message'},
})

是的,模型错误消息仅在 specific situations 中使用,就像文档提到的那样。

关于python - 使用通用编辑 UpdateView 时在表单验证期间自定义 error_messages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50523146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com