Форум сайта python.su
Solidkiller
глупости не говорите, что там устаревшего? что там такого супер нового что можно списать джангобук со счетов? Ответ: ничего критичного.
Solidkillerда, серьезно?А по мне так нет, ибо выглядит все так будто вы игнорируете мои ответы. Ну да ладно, это ваше дело
Про отлавливания ошибок, я тоже знаю..
Офлайн
JOHN_16, не правда.. Я начал читать про pdb. Очень классная штука!!
Правда я из нее выйти так и не смог.
(уже узнал на С выход)
Собственно я первый раз написал так же как вы мне скинули, но уже сюда отправил ерунду.. В общем сейчас вьюха вот так выглядит:
@render_to("player_list.html")
def player_list(request):
player = Player.objects.all()
if request.method == 'POST':
form = PlayerForm(request.POST)
if form.is_valid():
form.save()
print u'Все хорошо'
return HttpResponseRedirect('/player_list/')
else:
form = PlayerForm()
print u'Ошибка'
return render_to_response('player_list.html', {
'form': form, "player": player,
})
<form action="" method="post" >{% csrf_token %}
<div>
<legend>
Добавить игрока:
</legend>
{{ form.as_ul }}
</div>
<input type="submit" value="Добавить игрока" class="button_add"/>
</form>
CSRF verification failed. Request aborted.Куки включены, токен в правильном месте… И CsrfViewMiddleware в сеттинг.пай тоже есть… Я форумы копал, но что-то ничего так и не нашел.. Разве что мол отключить это и заменить его ajax чтоли..
Help
Reason given for failure:
CSRF token missing or incorrect.
Отредактировано Solidkiller (Апрель 12, 2013 16:57:09)
Офлайн
Отбой все заработало…. Пришлось бд пересоздавать и кое-что лишнее повыпиливать и заработало…
Но еще много задумок… Поэтому еще пилить и пилить и пилить…
JOHN_16, спасибо за помощь!
Отредактировано Solidkiller (Апрель 12, 2013 20:46:01)
Офлайн
Собственно говоря авторизация.
@render_to("login.hml")
def login(request):
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is user.is_active:
auth.login(request, user)
return HttpResponseRedirect("player_list")
else:
return HttpResponseRedirect("login")
return render_to_response('login.html', {
'username': username, "password": password
})
(Pdb) n
MultiValueDictKeyError: MultiVal…t: {}>",)
> c:\project\wg_chess\chess_core\views.py(34)login()
-> username = request.POST
(Pdb) list
29
30
31 @render_to(“login.hml”)
32 def login(request):
33 pdb.set_trace()
34 -> username = request.POST
35 password = request.POST
36 user = auth.authenticate(username=username, password=password)
37 if user is user.is_active:
38 auth.login(request, user)
39 return HttpResponseRedirect(“/player_list/”)
Отредактировано Solidkiller (Апрель 15, 2013 15:26:38)
Офлайн
ну вы логику включите - если говорит что в словаре-подобном объекте request.POST нету поля username, значит его там нет. Браузер вам выдал старницу с ошибкой, там же он обязательно показывает состояние различных перменных, найдите там POST и посмотрите на содержание, вероятно оно пустое. Я попробую угадать чт опри таком раскладе вы ПОСТ запрос посылаете не на ту страницу.
и я вам уже указал в прошлом сообщении о проверки POST:
if request.POST
Офлайн
JOHN_16, Шаблон то взят оттуда же.
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="sylesheet" href="player_list.css"/>
<style type="text/css"></style>
<title class='title'>Авторизация</title>
</head>
<body>
<form action='' method='post'>
<label for="username">Логин:</label>
<input type="text" name="username" value="">
<label for="password">Пароль:</label>
<input type="password" name="password" value="">
<input type="submit" value="login" />
<!--<input type="hidden" name="next" value="{{ next|escape }}" />-->
</form>
</body>
</html>
Отредактировано Solidkiller (Апрель 16, 2013 12:43:10)
Офлайн
Ну раз вы игнорируете мои сообщения, значит ждите помощи от кого то иного. Мне не доставляет удовольствия писать в пустоту.
Офлайн
JOHN_16, я кажется только сейчас понял, что Вы имели в виду.
Нужно было просто убрать вот это:
{'username': username, "password": password}
user = auth.authenticate(username=username, password=password)
Отредактировано Solidkiller (Апрель 17, 2013 16:36:36)
Офлайн
Solidkiller
нет это передача именованных аргументов. С такими параметрами логина и пароля будет произведена попытка авторизации
Офлайн