Проблема с сессией в Django после входа в систему - PullRequest
1 голос
/ 26 сентября 2011

Привет, я относительно новичок в Django, добивался устойчивого прогресса в большинстве вещей, но я застрял в части сессий. После того, как я вошел в систему с моего входа в систему, он успешен и перенаправляет на следующую ссылку, которая указывает на другой вид. Именно здесь возникает проблема, request.user просто возвращает пустой объект, и мой пользователь не распознается как вошедший в систему. Я пробовал гуглить везде и читать официальные учебники по django, но ничего не могу придумать, может кто-нибудь взглянуть на мой код, чтобы увидеть, где я ошибся? Я также просмотрел свою базу данных, и кажется, что django правильно хранит сеансы в моей базе данных, может ли это быть что-то не так с файлами cookie?

Ниже приведены мои 2 простых представления.

def mylogin (запрос):

def errorHandle(error): 
    form = LoginForm() 
    return render_to_response('login/login.html', { 
                                             'error' : error, 
                                             'form' : form, 
    }) 
if request.method == 'POST': # If the form has been submitted... 
    form = LoginForm(request.POST) # A form bound to the POST data 
    if form.is_valid(): # All validation rules pass 
        username1 = request.POST['username'] 
        password1 = request.POST['password']
        u = User.objects.get(username=username1) 
        user = authenticate(username=username1, password=password1) 
        if user is not None: 
            if user.is_active: 
                # Redirect to a success page. 
                login(request, user)
                username1 = user.last_name + " " + user.first_name              
                return HttpResponseRedirect("../portal/")
                #return render_to_response('login/logged_in.html', {
                #    'username': username1,
                #},RequestContext(request)) 
            else: 
                # Return a 'disabled account' error message 
                error = u'account disabled' 
                return errorHandle(error) 
        else: 
            # Return an 'invalid login' error message. 
            error = u'invalid login' 
            return errorHandle(error) 
    else: 
        error = u'form is invalid' 
        return errorHandle(error) 
else: 
    form = LoginForm() # An unbound form 
    return render_to_response('login/login.html', {
        'form': form,
    })

def mytest (запрос):

request.user.username
return render_to_response('login/logged_in.html', {
                    'username': username1,
})

1 Ответ

1 голос
/ 27 сентября 2011

Я думаю, что вы изобретаете колесо без необходимости - весь этот тяжелый подъем уже сделан. Для этого я настоятельно рекомендую использовать django-registration , возможно, в сочетании с django-profile . Документация немного абстрактна, но очень хорошо написана и очень гибкая. Я никогда не размещаю сайт Django без него и никогда не сталкиваюсь с такими проблемами, как этот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...