django - 覆盖 Django 默认身份验证表单
问题描述
我正在尝试覆盖 Django AuthorizationForm 的预设错误消息。而不是说这个字段是必需的,我试图让它说用户名是必需的。
我尝试使用标准 LoginView 对 AuthorizationForm 进行子类化,但它没有采用我的自定义清理方法。我查看了这个类似的问题,Change default django error messages for AuthenticationForm并尝试按照其中的提示进行操作,但仍然无法正常工作。在此先感谢您提供有关我可能做错的任何提示。
class AuthenticationForm(AuthenticationForm):
def __init__(self, *args, **kwargs):
super(AuthenticationForm, self).__init__(*args, **kwargs)
def clean(self):
cleaned_data = super(AuthenticationForm, self).clean()
username = cleaned_data.get('username')
password = cleaned_data.get('password')
if username and password:
pass
else:
self.add_error('username','Username and Password required.')
pass
我试图让它显示用户名和密码,而不是默认的预设此字段是必需的消息。无论我做什么,我似乎都无法获取上面的代码。我将它存储在我的项目 forms.py 文件中。我相信我错误地将其子类化。我尝试了很多不同的组合,但似乎无法看到这种形式。我正在运行 Django 1.11
解决方案
@Jagjeet Singh 谢谢!
Jagleet 的建议帮助我理解我需要在我的 forms.py 文件中以以下格式定义此表单,以便用户获得我想要的最终结果。
class AuthenticationForm(AuthenticationForm):
class Meta:
model = User
fields = '__all__'
def __init__(self, *args, **kwargs):
super(AuthenticationForm, self).__init__(*args, **kwargs)
for field in self.fields.values():
field.error_messages = {'required':'{fieldname} is required'.format(
fieldname=field.label)}
推荐阅读
- python-3.x - 在 python 中将错误数据写入 GCP 数据流的新 Bigquery 表
- flutter - 如何在颤动中使用可关闭的小部件和提供者状态管理
- php - 通过表单 php 邮件发送图像
- python - Python 字符串迭代:如何先打印任何非元音字符,然后打印元音(通过 For 循环)
- python - Python BeautifulSoup - 获取数据标签
- javascript - React useEffect清理功能多次运行?
- python - 如何使用 virtualenv 在 VS Code 中调试 python?再次
- rust - 如何使用 Rust 与 Actix Web 和 WebSockets 发送服务器事件?
- android - 如何在android中以编程方式关闭Android手机
- python-3.x - Python-通过分隔符将一列中的字符串拆分为多列