Как вы передаете имя пользователя со страницы входа в систему и заставляете его появляться на боковой панели - PullRequest
1 голос
/ 31 декабря 2011

Я пытаюсь включить userID пользователя на боковой панели.

Таким образом, на боковой панели будет отображаться «Привет, имя пользователя»

Я пробовал метод cookie, но он не работает.

Это мой cookie, получающий мое имя пользователя:

def login_user(request):
    state = "Please log in below..."
    username = password = ''
    if request.POST:
        username = request.POST.get('username')
        password = request.POST.get('password')

        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                state = "You're successfully logged in!"
                cookie = Cookie.SimpleCookie()
                cookie['username']=str(time.time())
                return render_to_response('r2/topic/index.html',{})
            else:
                state = "Your account is not active, please contact the site admin."
        else:
            state = "Your username and/or password were incorrect."
            return render_to_response('registration/login.html',{'state':state, 'username': username})

    return render_to_response('registration/login.html',{'state':state, 'username': username})

и это мой index.html:

                  <!-- sidebar -->
        <div id="sidebar">
            <div class="about-me">
                <h3>Welcome {{ username }}</h3> 
        <script type="text/javascript">
        function getCookie(c_name)
        {
          var i,x,y,ARRcookies=document.cookie.split(";");
          for (i=0;i<ARRcookies.length;i++)
            {
                x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
                y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
                x=x.replace(/^\s+|\s+$/g,"");
                if (x==c_name)
                    {
                        return unescape(y);
                    }
            }
        }


        function checkCookie()
        {
          var username=getCookie("username");
          if (username!=null && username!="")
            {

                <h3>document.getElementById("about-me").innerHTML = "Welcome " +username;</h3>
            }
          else 
            {
                username=prompt("Please enter your name:","");
                if (username!=null && username!="")
                        {
                            setCookie("username",username,365);
                        }
            }
        }
        </script>

Я что-то не так делаю? Любая помощь будет высоко ценится.

Спасибо.

1 Ответ

6 голосов
/ 31 декабря 2011

Почему так сложно?Вы можете проверить, вошел ли пользователь непосредственно в шаблон:

{% if user.is_authenticated %}
   Hello {{ user.username }}
{% else %}
   Please log in
{% endif %}

и проверить, что в settings.py в TEMPLATE_CONTEXT_PROCESSORS есть 'django.contrib.auth.context_processors.auth'.Вот некоторые документы

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