用户列表

时间:2017-09-14 03:49:54

标签: python django

我的userprofile_list.html模板中包含以下代码:

{% 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 个答案:

答案 0 :(得分:1)

我认为你在这个链接上有一个拼写错误。试试这个:

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

您正在使用 user.pk 循环变量是用户,因此您需要使用 users.pk ,假设您已创建视图以通过获取来编辑user_profile pk 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>