1
NameError at /todos/accounts/register/

global name 'csrf' is not defined

Request Method:     GET
Request URL:    http://localhost:8000/todos/accounts/register/
Django Version:     1.10.5
Exception Type:     NameError
Exception Value:    

global name 'csrf' is not defined

Exception Location:     /home/rahul/Desktop/apps/todolist/todos/views.py in register, line 37
Python Executable:  /usr/bin/python
Python Version:     2.7.6
Python Path:    

Error in views.py :

from django.shortcuts import render
from django.http import HttpResponse
from .models import Todo
from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.contrib.auth.forms import UserCreationForm

#from django.core.context_processors import csrf

def index(request):
    todos = Todo.objects.all()[:10]

    context = {
       'todos' : todos
    }
    return render(request, 'index.html', context)

def details(request, id):
    todo = Todo.objects.get(id=id)
    context = {
       'todo' : todo
    }
    return render(request, 'details.html', context)

 def register(request):
    if request.method == 'POST':
         form = UserCreationForm(request.POST)
    if form.is_valid():
        form.save()
        return HttpResponseRedirect('/accounts/register/complete')

    else:
        form = UserCreationForm()
    token = {}
    token.update(csrf(request))
    token['form'] = form

    return render_to_response('registration/registration_form.html', token)

def registration_complete(request):
    return render_to_response('registration/registration_complete.html')

Currently my code is showing global name 'csrf' is not defined. To overcome this error, If I uncomment from django.core.context_processors import csrf, than it shows context_processors module not found. Please help.

Thanks in advance.

rahul
  • 27
  • 7

1 Answers1

1

Django built-in template context processors were moved from package django.core to django.template. So you should change your import as

from django.template.context_processors import csrf
Harun ERGUL
  • 5,770
  • 5
  • 53
  • 62