2017-10-17 98 views
0

我是Django中的新成員,當我嘗試使用csrf時,沒有看到在html代碼中生成的csrfmidderwaretoken。請幫助我的人了:) 打擊是我的代碼片段:Django 1.11不生成CSRF令牌

urls.py:

`url(r'^register/$', register, name="register"),` 

views.py:

def register(request): 
     if request.method == 'POST': 
      username = request.POST['username'] 
      password = request.POST['password'] 
      if not (User.objects.filter(username=username)): 
       User.objects.create(username=username, password=password) 
       User.save() 
       return render(request, "register.html", {"status":True}) 
     else: 
      return render_to_response('register.html') 

register.html: Template Html Code Link

而且顯示的是: Appearance on site

Django 1.11,Python3.6。 有人可以幫我檢查一下,非常感謝提前。

+0

您應該使用'create_user'而不是'create',以便密碼正確散列。創建對象後的'save()'調用不是必需的。 – Alasdair

+0

在'settings.MIDDLEWARE'中定義了'django.middleware.csrf.CsrfViewMiddleware'。 – Bijoy

回答

3

請勿在最後一行使用render_to_response。已經過時了。將其更改爲render,以便上下文處理器(包括csrf)可以工作。

return render(request, 'register.html') 
0

render_to_response已棄用。請改用render()

return render('register.html')