我有Django CSRF的问题。当我尝试注册新用户或登录时,我收到下一个错误:未设置CSRF cookie。同样在注册页面上,用户名和网站标签没有正确加载,我得到这样的符号:'Ð〜ÐÐÑпользоваÑ,ÐμлÑ'而不是。
我已经尝试过CSRF_COOKIE_SECURE = True,django.middleware.csrf.CsrfViewMiddleware,清除浏览器数据,我的{%csrf_token%}被放置在表单内。任何人都可以给我至少一些关于可能的错误的提示吗? 我的代码:
forms.py:
<form method="post" action="register/">
{% csrf_token %}
{{ user_form.as_p }}
{{ profile_form.as_p }}
views.py
def register(request):
c = {}
c.update(csrf(request))
registered = False
if request.method == 'POST':
user_form = UserForm(data=request.POST)
profile_form = UserProfileForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
profile.save()
registered = True
else:
print(user_form.errors, profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileForm()
return render_to_response(
'register.html',
{'user_form': user_form, 'profile_form': profile_form, 'registered': registered}, c)
感谢您的考虑!
答案 0 :(得分:0)
不要使用render_to_response
,它已经过时了。请改用render
。
return render(request,
'register.html',
{'user_form': user_form, 'profile_form': profile_form, 'registered': registered})
然后,您可以从视图中删除这些行:
c = {}
c.update(csrf(request))