【发布时间】:2020-08-04 14:17:50
【问题描述】:
我希望用户被重定向到我尝试添加的新创建的帖子
return reverse("article-detail", args=(str(self.pk))) 但它不起作用。
在命令提示符下它说 `
django.urls.exceptions.NoReverseMatch: 'article-detail' 的反向 找不到参数“('4','3')'。尝试了 1 种模式: ['文章/(?P[0-9]+)$']
`
models.py
Class Post(models.Model):
title = models.CharField(max_length=255)
header_image = models.ImageField(null=True, blank=True, upload_to='images/')
title_tag = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = RichTextField(blank=True, null=True)
# body = models.TextField()
post_date = models.DateTimeField(auto_now_add=True)
category = models.CharField(max_length=255, default='coding')
snippet = models.CharField(max_length=255)
likes = models.ManyToManyField(User, related_name='blog_post')
def total_likes(self):
return self.likes.count
def __str__(self):
return self.title + ' | ' + str(self.author)
def get_absolute_url(self):
return reverse("article-detail", args=(str(self.pk)))
# return reverse("home")
urls.py
path('add_post/', AddPostView.as_view(), name="add_post"),
path('article/<int:pk>', ArticleDetailView.as_view(), name="article-detail"),
views.py
class AddPostView(CreateView):
model = Post
form_class = PostForm
template_name = 'add_post.html'
【问题讨论】:
-
我试过了,但它显示没有要重定向到的 URL。在模型上提供一个 url 或定义一个 get_absolute_url 方法。
-
args应该是一个项目列表。你能在你有reverse("article-detail"的地方添加你的url模式吗? -
我已经添加了网址
-
但是没有!我的意思是链接到该名称
article-detail的网址。并添加完整的回溯......这就是我可以帮助你的方式
标签: python django django-models django-views