【发布时间】:2017-09-14 03:49:53
【问题描述】:
我的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 循环创建的用户列表中单击的任何用户的个人资料。如何更改 url 来做到这一点?
我认为必须做的是,与其获取当前登录用户的 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>
【问题讨论】: