Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Авторизация с заданными логином и паролем. [RSS Feed]

#1 Апрель 12, 2013 00:33:10

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

Solidkiller
глупости не говорите, что там устаревшего? что там такого супер нового что можно списать джангобук со счетов? Ответ: ничего критичного.

Solidkiller
Про отлавливания ошибок, я тоже знаю..
да, серьезно?А по мне так нет, ибо выглядит все так будто вы игнорируете мои ответы. Ну да ладно, это ваше дело



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#2 Апрель 12, 2013 15:10:39

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

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,
})
добвил на верх codding и все ок..
Ну и форма вот так:

<form action="" method="post" >{% csrf_token %}
<div>
<legend>
Добавить игрока:
</legend>
{{ form.as_ul }}
</div>
<input type="submit" value="Добавить игрока" class="button_add"/>
</form>
Но выдает 403… Мол
CSRF verification failed. Request aborted.
Help
Reason given for failure:
CSRF token missing or incorrect.
Куки включены, токен в правильном месте… И CsrfViewMiddleware в сеттинг.пай тоже есть… Я форумы копал, но что-то ничего так и не нашел.. Разве что мол отключить это и заменить его ajax чтоли..

Отредактировано Solidkiller (Апрель 12, 2013 16:57:09)

Офлайн

#3 Апрель 12, 2013 17:18:19

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

Отбой все заработало…. Пришлось бд пересоздавать и кое-что лишнее повыпиливать и заработало…
Но еще много задумок… Поэтому еще пилить и пилить и пилить…
JOHN_16, спасибо за помощь!

Отредактировано Solidkiller (Апрель 12, 2013 20:46:01)

Офлайн

#4 Апрель 15, 2013 15:20:55

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

Собственно говоря авторизация.

@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/”)

А в браузере:
Exception Type: MultiValueDictKeyError
Exception Value:
“Key ‘username’ not found in <QueryDict: {}>”
Все сделано согласно djangobook..

Отредактировано Solidkiller (Апрель 15, 2013 15:26:38)

Офлайн

#5 Апрель 16, 2013 01:16:42

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

ну вы логику включите - если говорит что в словаре-подобном объекте request.POST нету поля username, значит его там нет. Браузер вам выдал старницу с ошибкой, там же он обязательно показывает состояние различных перменных, найдите там POST и посмотрите на содержание, вероятно оно пустое. Я попробую угадать чт опри таком раскладе вы ПОСТ запрос посылаете не на ту страницу.

и я вам уже указал в прошлом сообщении о проверки POST:

if request.POST

И из шаблона, думается мне, будет более корректно в теге формы писать action=“”



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Апрель 16, 2013 12:42:43

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

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)

Офлайн

#7 Апрель 16, 2013 15:06:07

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

Ну раз вы игнорируете мои сообщения, значит ждите помощи от кого то иного. Мне не доставляет удовольствия писать в пустоту.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#8 Апрель 17, 2013 16:36:04

Solidkiller
Зарегистрирован: 2013-03-11
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

JOHN_16, я кажется только сейчас понял, что Вы имели в виду.
Нужно было просто убрать вот это:

{'username': username, "password": password}
Спасибо за помощь. И я никогда не игнорю советы
Еще вопрос: судя по документации в этой строке задаются изначальные username и password?
user = auth.authenticate(username=username, password=password)

Отредактировано Solidkiller (Апрель 17, 2013 16:36:36)

Офлайн

#9 Апрель 18, 2013 00:33:41

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Авторизация с заданными логином и паролем.

Solidkiller
нет это передача именованных аргументов. С такими параметрами логина и пароля будет произведена попытка авторизации



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

  • Начало
  • » Django
  • » Авторизация с заданными логином и паролем.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version