簡體   English   中英

Django:訪問html模板中views.py中設置的cookie值?

[英]Django: Accessing cookie value set in views.py in html template?

我無法找出一種方法來使用與我已經在views.py文件中設置的cookie相對應的值

        if user.is_active:
            login(request, user)
            login_dict = {
                'user': user,
            }
            max_age = 60 * 60
            response = render(request, 'index.html', login_dict)
            response.set_cookie('logged_in', 'request.POST['email']', max_age)
            return response

我現在必須在模板index.html中使用與logging_in cookie-key對應的值。

{% if request.COOKIES (<--*This is where I am facing the problem*)%}
        <li>
          <a href="#" class="dropdown-toggle" data-toggle="dropdown"> {{ request.COOKIES.logged_in }} <b class="caret"></b></a>
          <ul class="dropdown-menu">
            <li><a href="#">Settings</a></li>
            <li><a href="#">Preferences</a></li>
            <li class="divider"></li>
            <li><a href="/logout/">LogOut</a></li>
          </ul>
        </li>
        {% else %}
        <li>
            <a href="/login/">Login</a>
        </li>
        <li>
            <a href="/register/">Register</a>
        </li>
        {% endif %}

最好創建一個變量並將其傳遞到模板中:

if user.is_active:
    login(request, user)
    login_dict = {
        'user': user,
        'your_desired_value': desired_value, # your new variable
    }
    max_age = 60 * 60
    response = render(request, 'index.html', login_dict)
    response.set_cookie('logged_in', request.POST['email'], max_age)
    return response

並在模板中:

{% if your_desired_value %}
     {# do magic #}
{% endif %}

而且您不需要顯式傳遞user變量,它始終可以作為request.user訪問

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM