Python 如何在url django中添加用户名
Django新手,这是一个简单的博客帖子应用程序。如何在url中包含帖子作者的姓名Python 如何在url django中添加用户名,python,django,Python,Django,Django新手,这是一个简单的博客帖子应用程序。如何在url中包含帖子作者的姓名 urlpatterns = [ path('post/<int:pk>/', PostDetailView.as_view(), name='post-detail'), ] views.py class PostDetailView(DetailView): model = Post 您可以添加一个额外的参数: urlpatterns = [ pat
urlpatterns = [
path('post/<int:pk>/', PostDetailView.as_view(), name='post-detail'),
]
views.py
class PostDetailView(DetailView):
model = Post
您可以添加一个额外的参数:
urlpatterns = [
path('post/<str:author>/<int:pk>/', PostDetailView.as_view(), name='post-detail'),
]
注意:通常最好使用来引用用户模型,而不是直接使用。有关更多信息,请参见
这对你有帮助吗?你好,谢谢你的回复。我得到了这个错误“使用参数(1,)”来反转“post detail”找不到。尝试了1个模式:[“post\\/(?P[^/]+)\\/(?P[0-9]+)\\\/$”]。@sokoine:您可能有一个
{%url'post detail'post.id%}/code>,但是它需要作者的用户名,所以:{%url'post detail'author=post.author.username pk=post.id%}/code>。
urlpatterns = [
path('post/<str:author>/<int:pk>/', PostDetailView.as_view(), name='post-detail'),
]
class PostDetailView(DetailView):
model = Post
def get_queryset(self, *args, **kwargs):
return super().get_queryset(*args, **kwargs).filter(
author__username=self.kwargs['author']
)
from django.urls import reverse
class Post(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=100, blank="true")
content = models.CharField(max_length=400)
def get_absolute_url(self):
return reverse('post-detail', kwargs={'id': self.pk, 'author': self.author.username})