【问题标题】:Django NameError at /HomeFeed/comments/testuser1-12 name 'slug' is not defined/HomeFeed/comments/testuser1-12 处的 Django NameError 名称“slug”未定义
【发布时间】: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


    【解决方案1】:

    您是否尝试过传递值 comment.post.slug:

    return redirect(reverse("HomeFeed:detail", kwargs={'slug': comment.post.slug }))
    

    错误是因为 slug 不是代码中任何地方的变量

    【讨论】:

    • 是的,我之前试过,记得收到一个属性错误,说视图没有 slug
    • 我刚刚尝试并得到了这个:No BlogPost matches the given query.
    • 也许是comment.post.slug
    • 是的,它成功了!谢谢...但是你能解释一下你是怎么得到它的吗?基本上,您使用帖子作为外键链接到 BlogPost 模型中的 slug 字段是吗?
    • 感谢您的建议!祝你有美好的一天:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 2018-07-14
    • 2017-12-25
    • 2021-07-17
    • 2012-05-13
    • 2017-08-17
    • 2019-10-20
    相关资源
    最近更新 更多