我正在为一个混合的React/Django Web应用开发一个基本的登录表单。我想使用Django表单模型内置的数据清理和验证方法,但是我们的前端是纯React的。登录时一切都正常,但是我将原始的身体数据输入到认证函数中,如图所示。
def login_view(request):
if request.method == "POST":
form_data = json.loads(request.body.decode('utf-8'))
user = authenticate(request, email=form_data["username"], password=form_data["password"])
if user == None:
request.session["invalid_user"] = 1
logging.warning("Login form contains no user")
login(request, user)
我的问题是,当我示例化这个form_data的时候,有没有办法把它输入到Django原生的LoginForm中?我不想重新编码Django已经做过的所有输入验证。
我尝试过如下示例化LoginForm:
form = LoginForm(data=form_data)
然后尝试运行form.full_clean(),但似乎不起作用。任何帮助将不胜感激,谢谢!
1条答案
按热度按时间ux6nzvsh1#
这个问题实际上是呈现的React表单和我定义的Django LoginForm的变量名不同。一个是用户名和密码,另一个是电子邮件和密码。记住这一点,通常使用表单的方法工作得很好!