2017-09-14 27 views
0

的名單我已經在我的userprofile_list.html模板下面的代碼:URL到每個用戶的配置文件中的用戶

{% extends "base.html" %} 

{% block content %} 

    {% for users in userprofile_list %} 
     <a href="{% url 'users:user_profile' user.pk %}"> 
     <div class="user-card"> 
      <img class="profile-pic" src="{%if user.userprofile.profile_pic%}{{user.userprofile.profile_pic.url}}{%endif%}"> 
      <p class="user-card-name">{{ users.pk }}</p> 
      <p class="user-card-name">{{ users.first_name }}</p> 
      <p class="user-card-type">{{ users.user_type }}</p> 
     </div> 
     </a> 
    {% endfor %} 

{% endblock %} 

注行<a href="{% url 'users:user_profile' user.pk %}">,我在其他地方使用它在我的應用程序,並單擊時它需要你到當前登錄用戶的配置文件。不過,我希望它會將您帶到用戶列表中由for循環創建的用戶列表中單擊的用戶的配置文件。我如何更改網址來做到這一點?

我認爲必須做的是不是獲取當前登錄用戶的pk,而是獲取該用戶列表中特定用戶的pk,然後將其傳遞給url模式(已經在工作,所以我沒有發佈它)。

注意:如果我的邏輯不正確,那麼發生什麼事情就好了,讓我知道你需要看到什麼來幫助。謝謝。

編輯

base.html文件:

<!DOCTYPE html> 
{% load staticfiles %} 

<html lang="en"> 
    <head> 
     <title>Evverest</title> 

     <meta name"viewport" content="width=device-width, initial-scale=1"> 
     <meta charset="uft-8"> 
     <link rel="shortcut icon" href="/images/favicon.ico"> 
     <link href="https://fonts.googleapis.com/css?family=Droid+Sans|Mukta+Mahee|Noto+Sans" rel="stylesheet"> 
     <link rel="stylesheet" href="{% static 'css/style.css' %}"> 
    </head> 

<body> 

    <nav> 
     <div class="container"> 
      <a class="brand" href="{% url 'index' %}">Evverest</a> 

      <div class="navbar"> 
       <a class="nav-link" href="{% url 'index' %}">Home</a> 
       {% if user.is_authenticated %} 
        <a class="nav-link" href="{% url 'users:user_profile' user.id %}"> 
         {{ user.username|capfirst }} 
        </a> 
        <a class="nav-link" href="{% url 'users:user_list' %}">All Members</a> 
        <a class="nav-link" href="{% url 'account_logout' %}">Logout</a> 
       {% else %} 
        <a class="nav-link" href="{% url 'account_login' %}?next=/">Login</a> 
        <a class="nav-link" href="{% url 'account_signup' %}?next=/">Register</a> 
       {% endif %} 
      </div> 
     </div> 
    </nav> 

    <div class="container"> 
     <div class="content"> 
      {% block content %} 
      {% endblock %} 
     </div> 
    </div> 

</body> 

</html> 

回答

1

我認爲你必須在鏈接一個錯字。 ,

<a href="{% url 'users:user_profile' users.pk %}"> 

您正在使用user.pk循環變量是用戶,所以你需要使用users.pk,假設你已經創建了一個視圖通過獲取PK編輯user_profile:試試這個user_profile

編輯 試試這個base.html文件:

<!DOCTYPE html> 
    {% load staticfiles %} 

    <html lang="en"> 
    <head> 
    <title>Evverest</title> 

    <meta name"viewport" content="width=device-width, initial-scale=1"> 
    <meta charset="uft-8"> 
    <link rel="shortcut icon" href="/images/favicon.ico"> 
    <link href="https://fonts.googleapis.com/css?family=Droid+Sans|Mukta+Mahee|Noto+Sans" rel="stylesheet"> 
    <link rel="stylesheet" href="{% static 'css/style.css' %}"> 
</head> 

<body> 

<nav> 
    <div class="container"> 
     <a class="brand" href="{% url 'index' %}">Evverest</a> 

     <div class="navbar"> 
      <a class="nav-link" href="{% url 'index' %}">Home</a> 
      {% if request.user.is_authenticated %} 
       <a class="nav-link" href="{% url 'users:user_profile' request.user.id %}"> 
        {{ request.user.username|capfirst }} 
       </a> 
       <a class="nav-link" href="{% url 'users:user_list' %}">All Members</a> 
       <a class="nav-link" href="{% url 'account_logout' %}">Logout</a> 
      {% else %} 
       <a class="nav-link" href="{% url 'account_login' %}?next=/">Login</a> 
       <a class="nav-link" href="{% url 'account_signup' %}?next=/">Register</a> 
      {% endif %} 
     </div> 
    </div> 
</nav> 

<div class="container"> 
    <div class="content"> 
     {% block content %} 
     {% endblock %} 
    </div> 
</div> 

+0

使作品,但隨後它會導致另一個問題。它使用戶列表中的每個配置文件的按鈕。但是,登錄的用戶應該顯示在導航欄中,當它將我帶到新用戶的配置文件時,而是顯示該用戶是導航欄而不是登錄用戶。以下是nabber代碼: {{ user.username|capfirst }} Garrett

+0

這是導航欄鏈接,用於顯示當前登錄的用戶。如果我以Garrett的身份登錄,但是我轉到Marc的個人資料中,在導航欄中的鏈接將顯示Marc(並轉至Marc的個人資料)時,它仍應顯示Garrett(或任何用戶登錄) – Garrett

+0

替換**用戶。** **在navbar鏈接中使用** request.user.id **並使用** request.user.username **而不是user.username。這是因爲我認爲你爲該視圖創建了一個上下文變量** user **。 ** request.user **返回當前登錄的用戶。更新如果這工作。 –

相關問題