django - 使用参数“(”帐户//',)' 未找到。尝试了 1 种模式:['accounts/(?P[0-9]+)/$']
问题描述
在我的博客中,我希望当有人点击阅读更多时,它应该将该人引导到登录页面,这工作正常,然后在输入登录凭据后,它应该将该人带到详细页面,这就是我我得到了上面的错误。
这是代码 urls.py
from . import views
from django.urls import path
from.views import Home, Detail, CreatePost
urlpatterns = [
path('', Home.as_view(), name='home'),
path('register/', views.register, name='register'),
path('login/', views.login, name='login'),
path('logout/', views.logout, name='logout'),
path('post/', CreatePost.as_view(success_url='/'), name='post'),
path('accounts/<int:pk>/', Detail.as_view(), name='detail'),
]
下面的行来自entry_list.html
<a href="{% url 'login' %}" class="btn btn-primary btn-sm">Read More →</a>
然后下面是我的登录逻辑``` def login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return redirect('detail', 'accounts/<int:pk>/')
else:
return redirect('login')
else:
return render(request, 'login.html')
```
解决方案
path('accounts/<int:pk>/', Detail.as_view(), name='detail')
在该 url 定义中,<int:pk>
是用户 ID 的占位符;它实际上不是 url 的一部分。
要重定向到 url,您必须提供用户 ID:
return redirect('detail', pk=user.id)
推荐阅读
- integration - 将nutch爬取的web数据存储到hdfs中
- sql - 地理层次识别资源
- maven - VScode 中的 maven 项目 - 无法解析导入
- linux - Xorg 错误的颜色显示
- smalltalk - 为什么我新安装的 Pharo.image 没有按照教程中的说明保存?
- sql-server - 如何通过某些标签获取帖子和评论的用户数?
- matlab - MATLAB 中的分段函数
- rspec - 是什么让 Rspec 占用 4gb 的内存来运行 500 个规范?
- reactjs - 使用 workbox.js 对 index.html 进行网络优先缓存
- nlp - 匹配两组文件以找到它们之间最接近的相关性