django - 尝试在 urlpattern 中使用用户名来为每个用户提供唯一的链接
问题描述
这是我的方法,如果你知道怎么做,请帮忙
我的意见.py
def profile(request, username):
return render(request, 'profile.html')
我的网址.py
from django.conf.urls import url
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views
# Template Urls!
app_name = 'accounts'
urlpatterns = [
path('Skolar/',views.base, name= 'base'),
path('Register/',views.register,name='register'),
path('login/', views.my_login_view, name='login'),
path('logout/',views.user_logout,name='logout'),
path('<slug:username>',views.profile, name='profile'),
path('EditProfile/',views.update_profile,name='editprofile'),
]
错误显示
Reverse for 'profile' with no arguments not found. 1 pattern(s) tried: ['(?P<username>[-a-zA-Z0-9_]+)$']
在我的 html 中我使用
<a class="dropdown-item" href="{% url 'accounts:profile' %}">My Account</a>
添加我想在点击该链接后显示用户的个人资料 html
{% extends 'masteraccount.html' %}
{% block content %}
{% load static %}
<link rel="stylesheet" href="{% static 'css/accountscss/profile.css'%}">
<div class="">
<div class="page-content">
<label class="name" for="NAME">NAME:</label>
<p>{{user.first_name}} {{user.last_name}}</p>
<label for="Email">Email:</label>
<p>{{user.email}}</p>
<label for="Twitter">Twitter:</label>
<p>{{user.profile.twitter}}</p>
<label for="Facebook">Facebook:</label>
<p>{{user.profile.Facebook}}</p>
<label for="Facebook">About:</label>
<p>{{user.profile.about}}</p>
<label for="Facebook">Date of Birth:</label>
<p>{{user.profile.dob}}</p>
</div>
<a href="{% url 'accounts:editprofile' %}"> <button type="button" class="btn btn-primary btn-lg">Edit Profile</button> </a>
</div>
{% endblock %}
解决方案
views.py 让我们假设您的模型是“个人资料”,并且您的“用户”与用户一对一相关,您应该使用以下内容:
from django.shortcuts import render,get_object_or_404
def profile(request, username):
profile = get_object_or_404(Profile,user = username)
return render(request, 'profile.html',{'profile':profile})
网址.py:
from django.conf.urls import url
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views
# Template Urls!
app_name = 'accounts'
urlpatterns = [
path('Skolar/',views.base, name= 'base'),
path('Register/',views.register,name='register'),
path('login/', views.my_login_view, name='login'),
path('logout/',views.user_logout,name='logout'),
path('<slug:username>/',views.profile, name='profile'),
path('EditProfile/',views.update_profile,name='editprofile'),
]
html
<a class="dropdown-item" href="{% url 'accounts:profile' request.user.username %}">My Account</a>
注意:最好使用 pk 作为配置文件。但是 slug 也可以
推荐阅读
- python-3.x - What is the new attribute for initialize_all_variables, global_variables_initializer in the latest version of tensorflow?
- python - Python argv "False, false' are recognized as True
- android - 处理货币交易时识别安卓设备
- datetime - 裁剪时间
- python - 如何使用基于条件的值将列附加到数据框
- haskell - 使用 Sublime Text 为 LSP 配置 style-haskell
- css - 如何使用引导程序将项目从行中提取到另一个?
- angular - Ngrx Component Store:我可以在一个效果内调用另一个效果吗?
- oracle - oracle的过程中创建表
- python - 排除列具有 NA 值的行