как сохранить объект 'user', который не используется для вставки его каждый раз, когда он вам нужен, используя django - PullRequest
0 голосов
/ 11 декабря 2010

Я хочу сделать это:

1.открыть login_view (это страница логина пользователя)

2. напишите мое имя пользователя и пароль и нажмите кнопку «Войти», затем отправьте в login_submit представление

3.в login_submit вид, если ваше имя пользователя и пароль верны, вы вернетесь на домашнюю страницу

4.но когда я return HttpResponseRedirect("/") до hpmeage, homepage.html (следующий код) не имеет user объекта

5. Мне нужно сделать так в login_submit view:

return render_to_response('homepage.html',{'user':user})

6.Это громоздко, я хочу использовать return HttpResponseRedirect("/"), поэтому я должен установить файлы cookie, которые сохраняют пользователя, или есть какой-либо другой простой способ сохранить пользователя, который не использовался для его вставки каждый раз, когда он вам нужен. *

спасибо

homepage.html:

{% if user.is_authenticated %}
    <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
    <p>Welcome, new user. Please <a href="/account/login_view">login</a></p>
{% endif %}

Вирв домашней страницы:

def home(request):
    return render_to_response('homepage.html')

это login_view:

def login_view(request): 
    if request.method == 'POST': 
        form = LoginForm(request.POST) 
        if form.is_valid():
            # Process the data in form.cleaned_data
            # ...
            return HttpResponseRedirect('/') # Redirect after POST
    else:
        form = LoginForm() # An unbound form

    return render_to_response('accounts/login_view.html',{'form': form,})

login_view.html:

<form action="/account/login_submit/" method="post">
    <div class="fieldWrapper">
        {{ field.errors }}
        {{ field.label_tag }}: {{ field }}
    </div>
    <p><input type="submit" value="login" /> or <a href="/account/register_view"><input type="button" value="register"></a></p>
</form>

и

def login_submit(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)  
        if user is not None:  
            if user.is_active:  
               login(request, user)
               return HttpResponseRedirect("/")
            else:
               return HttpResponse('user is not active')
        else:
            #return HttpResponseRedirect("/account/login_submit") 
            return HttpResponse('login error')

1 Ответ

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