Ошибка "CSRF token missing or incorrect" при передаче информации в форме - Python
Формулировка задачи:
Вообщем создал я модели(не суть важно какие). Через админку добавил группу пользователей и соответственно права(разрешения) изменять(создавать новые, удалять) объекты моделей. А потом и пользователя с паролем и логином. При аутентификации пользователя использую следующее:
Всё нормально работает, пользователь авторизуется, csrf_token и session_id в куках браузера (у меня хром) отображается. Потом я хочу создать новый объект для этого использую следующее:
Пробовал добавлять в шаблон {% csrf_token %} - результат не меняется, та же ошибка.
Может кто пояснит как работает механизм обмена инфой через формы авторизованного пользователя, если это матчасть, то будьте добры тыкните в ссылку. Заранее спасибо.
Листинг программы
- from django.shortcuts import render, render_to_response, redirect
- from tournament.models import Chessplayers, Rating
- from django.contrib import auth
- from django.contrib.auth.decorators import login_required
- from django.core.context_processors import csrf
- def auth_view(request):
- username = request.POST['username']
- password = request.POST['password']
- user = auth.authenticate(username=username,password=password)
- if user is not None:
- if user.is_active:
- auth.login(request, user)
- return redirect('/loggedin')
- else:
- return redirect('/disabled_account')
- else:
- return redirect('/invalid')
Листинг программы
- {% block header %}
- {% if forms.errors %}
- <p class="error">Sorry, that's not a valid username or password</p>
- {% endif %}
- <form action="/auth/" method="post">
- {% csrf_token %}
- <label for="username">User name:</label>
- <input type="text" name="username" id="username" value="">
- <label for="password">Password:</label>
- <input type="password" name="password" id="password" value="">
- <input type="submit" value="login">
- </form>
- {% endblock%}
Листинг программы
- {% block header %}
- <h2>Hi, {{ full_name }} you are now logged in!</h2>
- <p>Adding player to tournament table.</p>
- <form action="/addplayer_enter/" method="post">
- <label for="name">First name player:</label>
- <input type="text" name="name" id="name" value="">
- <label for="soname">Last name player:</label>
- <input type="text" name="soname" id="soname" value="">
- <label for="age">Age player:</label>
- <input type="text" name="age" id="age" value="">
- <input type="submit" value="Add player">
- </form>
- <p>Click <a href="/logout/">here</a> to logout.</p>
- {% endblock %}
Листинг программы
- @login_required
- def addplayerr(request):
- if request.POST and form.is_valid():
- new_player = Players.objects.create(
- name=request.POST['name'],
- soname=request.POST['soname'])
- Age.objects.create(age=request.POST['age'], age_player_id=new_player_id)
- return redirect('/loggedin')
- else:
- return redirect('/')
Решение задачи: «Ошибка "CSRF token missing or incorrect" при передаче информации в форме»
textual
Листинг программы
- def login(request):
- args={}
- args.update(csrf(request))
- return render_to_response('login.html',args,
- context_instance=RequestContext(request, processors=[custom_proc]) )
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д