【发布时间】:2020-10-31 13:24:42
【问题描述】:
现在在用户的个人资料页面上,它显示了他们关注的人数以及他们关注的人的用户名。当用户点击用户名时,我只是希望它把用户带到该用户的个人资料页面,但现在它正在链接回同一个用户的个人资料页面,所以基本上只是重新加载页面。
我猜这是因为我将 user.username 作为关键字参数传递,因为当我遵循相同的格式但使用 user.id 时,我不会遇到这个问题。我想使用user.username,这样用户名就可以显示在url中了。
rofilePage.html
{% block body %}
<h3>{{ user.username }}</h3>
<br>
<br>
<p>{{ profile.number_of_friends }}</p>
<p>{% for friend in profile.get_friends %}</p>
<a href="{% url 'profile' profile.user.username %}">{{ friend }}</a><br>
{% endfor %}
{% endblock %}
views.py:
def profile_page(request, user_username):
profile = get_object_or_404(Profile, user__username=user_username)
return render(request, "network/profilePage.html", {
"profile": profile
})
urls.py:
path("profile/<str:user_username>", views.profile_page, name="profile"),
models.py:
class User(AbstractUser):
pass
class Profile(models.Model):
user = models.OneToOneField("User", on_delete=models.CASCADE, primary_key=True)
friends = models.ManyToManyField("User", related_name='following', blank=True, symmetrical=False)
【问题讨论】:
标签: python django django-views django-urls