我正在尝试将AuthenticationForm表单与django一起使用,并发现我似乎无法获取该表单进行验证。我把它简化为一个似乎无效的简单测试(假设它是正确的)。有人可以在这里看到问题吗?
>>> from django.contrib.auth.forms import AuthenticationForm >>> POST = { 'username': 'test', 'password': 'me', } >>> form = AuthenticationForm(POST) >>> form.is_valid() False
是否存在无法验证的真实原因?我使用不正确吗?我已经按照django自己的登录视图对其进行了建模。
尝试:
form = AuthenticationForm(data=request.POST)
AuthenticationForm的第一个参数不是数据!完全没有:
def __init__(self, request=None, *args, **kwargs):
因此,这就是为什么你必须将req.POST传递给数据或在第一个参数中传递其他内容的原因。已经在此处使用的答案之一中说明了这一点:
AuthenticationForm(data=req.POST)
你也可以使用以下之一:
AuthenticationForm(req,req.POST) AuthenticationForm(None,req.POST)