Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с авторизацией в джанго, Логинится только админ 
V
    Опции темы
Goganchic
Дата 17.10.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



Всем привет!
У меня возникла такая проблема: разрабатываю простенькое приложение в джанго. Возникла потребность авторизации. Авторизация используется стандартная, т.е. ф-ии authenticate и login. Код вьюера такой:
Код

import datetime
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from wm.planner.models import Plan
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login, logout
from django.views.generic.date_based import object_detail

def index(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect('/planner/plans')
    else:
        return render_to_response('planner/index.html')

def planner_auth(request):
    username = request.POST.get('username', None)
    password = request.POST.get('password', None)

    print "username", username
    print "password", password

    user = authenticate(username=username, password=password)

    if user is None:
        print "wrong user name or password"
        return HttpResponseRedirect('/planner/')

    if not user.is_active:
        print "user is not active"
        return HttpResponseRedirect('/planner/')

    print "auth complete"

    login(request, user)
    return HttpResponseRedirect('/planner/plans')

def plans(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('/planner/')

    username = request.user.username
    plans = Plan.objects.filter(user = User.objects.get(username = username))

    return render_to_response('planner/plans.html', {'plans': plans})

def planner_logout(request):
    logout(request)
    return HttpResponseRedirect('/planner/')

При инициализации базы (для тестов использую sqlite3) я создал пользователя с именем admin и паролем admin. При попытке его логина все проходит успешно - т.е. пользователь попадает на нужную станицу.
После этого я решил проверить приложение с "не админом". Для этого в админке я создал в таблице users нового пользователя с именем test и паролем test. При попытке зайти с этими параметрами в свое новое приложение - оно ругаеццо, говорит, что имя пользователя или пароль неверные (ф-ия authenticate возвращает None).
Подскажите пожалуйста что я делаю не так: может быть нужно как-то подругому создавать пользователя или же задать ему какие-то прова доступа?
Система Debian Sid/lenny
Версия django 0.96

Это сообщение отредактировал(а) Goganchic - 17.10.2007, 17:38
PM Jabber   Вверх
Daevaorn
Дата 17.10.2007, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 3
Всего: 70



Цитата(Goganchic @  17.10.2007,  18:31 Найти цитируемый пост)
Подскажите пожалуйста что я делаю не так: может быть нужно как-то подругому создавать пользователя или же задать ему какие-то прова доступа? 

по описанию твоих действий - правильно. ошибка где-то в другом месте.
PS:
Цитата(Goganchic @  17.10.2007,  18:31 Найти цитируемый пост)
ругаеццо

за это вообще предупреждения выносят.
PM MAIL WWW   Вверх
pythonwin
Дата 17.10.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 2
Всего: 36



попробуй ещё спросить на рускоязычном форуме о django
PM WWW GTalk Jabber   Вверх
Goganchic
Дата 17.10.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



Цитата(Daevaorn @  17.10.2007,  17:39 Найти цитируемый пост)
Цитата(Goganchic @  17.10.2007,  18:31 Найти цитируемый пост)
ругаеццо

за это вообще предупреждения выносят. 

извиняюсь

Цитата(pythonwin @  17.10.2007,  17:40 Найти цитируемый пост)
попробуй ещё спросить на рускоязычном форуме о django 

создал тему и там
PM Jabber   Вверх
Goganchic
Дата 18.10.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 678
Регистрация: 18.6.2004

Репутация: нет
Всего: 5



Проблема решилась: не знаю почему но в поле пароля в базе было написано "test" а формат пароля по сути другой smile
Я добавил еще одного пользователя и все заработало
В моем коде ошибок не было
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.1287 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.