我一直试图链接到用户的个人资料页面,但是每次尝试时,它都会返回404错误。我不知道,但错误可能在urls.py文件上。
views.py
def profile(request, username=None):
if username:
post_owner = get_object_or_404(User, username=username)
else:
post_owner = request.user
args1 = {
'post_owner': post_owner,
}
return render(request, 'profile.html', args1)
urls.py
urlpatterns = [
path('<str:username>/', views.profile, name='profile'),
path('login', views.login, name='login'),
path('register', views.register, name='register'),
path('logout', views.logout, name='logout'),
]
index.html
<a class="nav-link" href="{{ request.user }}">{{ user.username }}</a>
您应该将其链接到:
<a class="nav-link" href="{{ request.user.username }}">{{ user.username }}</a>
但最好使用{% url … }
模板标记[Django-doc]:
<a class="nav-link" href="{% url 'profile' username=request.user.username %}">{{ user.username }}</a>
您的路径也重叠,这意味着您将永远无法访问login
,register
或者logout
,因为第一个路径将以“”想法“触发” username='login'
。
您最好定义非重叠路径,例如:
urlpatterns = [
path('profile/<str:username>/', views.profile, name='profile'),
path('login/', views.login, name='login'),
path('register/', views.register, name='register'),
path('logout/', views.logout, name='logout'),
]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句