【发布时间】:2021-01-14 10:28:26
【问题描述】:
我从代码中收到此错误: /HomeFeed/cmets/testuser1-12 处的名称错误 名称“slug”未定义
知道为什么会这样吗?就像哪个部分也导致了这个问题一样,我如何在函数参数中没有 slug 的情况下定义 slug
基本上在发表评论后,我想重定向回帖子的页面,该页面的 url 中有一个 slug。
models.py
class Comment(models.Model):
post = models.ForeignKey(BlogPost, related_name='comments', on_delete=models.CASCADE)
name = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='name', on_delete=models.CASCADE)
body = models.TextField()
date_added = models.DateField(auto_now_add=True)
class BlogPost(models.Model):
chief_title = models.CharField(max_length=50, null=False, blank=False, unique=True)
body = models.TextField(max_length=5000, null=False, blank=False)
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
slug = models.SlugField(blank=True, unique=True)
urls.py
app_name = 'HomeFeed'
urlpatterns = [
path('<slug>/detail/', detail_blog_view, name= "detail"),
]
views.py
class AddCommentView(DetailView, FormView):
model = BlogPost # change model to post because your are commenting on POSTS not COMMENTS
form_class = CommentForm
template_name = 'HomeFeed/add_comment.html'
def form_valid(self, form):
comment = form.save(commit=False)
comment.name = self.request.user
comment.post = self.get_object()
comment.save()
return redirect(reverse("HomeFeed:detail", kwargs={'slug': slug }))
【问题讨论】:
标签: python django django-models django-views django-forms