python - django admin 在使用单独的表单进行添加和更新时不断提高验证错误
问题描述
我有两种形式:一种用于添加,另一种用于更新
class UserAddForm(forms.ModelForm):
class Meta:
model = User
fields = []
email = forms.CharField()
first_name = forms.CharField()
last_name = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput(render_value=False), required=True, label='Mot de passe')
is_teacher = forms.TypedChoiceField(coerce=lambda x: x == 'True', choices=((True, 'OUI'), (False, 'NON')), widget=forms.RadioSelect, label='Enseignant ?')
class UserChangeForm(forms.ModelForm):
class Meta:
model = User
fields = []
email = forms.CharField()
first_name = forms.CharField()
last_name = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput(render_value=False), required=False, label='Mot de passe')
is_teacher = forms.TypedChoiceField(coerce=lambda x: x == 'True', choices=((True, 'OUI'), (False, 'NON')), widget=forms.RadioSelect, label='Enseignant ?')
这是ModelAdmin
class UserAdmin(UserUploadAdmin):
fields = ['email', 'first_name', 'last_name', 'password', 'is_teacher']
form = UserChangeForm
def get_form(self, request, obj=None, **kwargs):
if not obj:
return UserAddForm
return super(UserAdmin, self).get_form(request, obj, **kwargs)
这个想法是处理空密码的情况。如果它是新用户,则需要密码,如果我正在更新,那么它将为空,因此被忽略。
问题是添加表单不断引发验证错误,即使字段不为空
但是,更新表单可以正常工作,没有任何问题。
解决方案
推荐阅读
- php - 如何在 PHP 中显示多维数组(2D、3D、4D 等),如 var_dump 和循环和回显?
- c++ - 获取 CRTP 继承链中最深的类
- arrays - 如何在 MQL5 中打印多维数组中的值?
- php - 我的 PHP 脚本不想创建 ZIP 文件
- python - 遍历目录中的文件并使用 pandas 将结果写入数据帧的新行
- javascript - 如何将页面上的所有 cookie 保存到 txt 文件(并记录页面 URL)
- html - 如何从我的组织外部删除传入邮件正文中的警告集
- yii2 - Yii2:/vendor/autoload.php 导致错误 500
- firebase - Flutter:一个应用程序中有多个firebase项目,但显示的数据不正确
- javascript - 正则表达式,在每个父 {} 上拆分字符串,嵌套 {{{...},{...}},},{...}