Django 是否将slug和上下文传递到呈现页面?

Django 是否将slug和上下文传递到呈现页面?,django,django-views,django-urls,Django,Django Views,Django Urls,我正在使用DetailView显示一个条目,并且在同一页面上还有一个评论表单 commment表单可以很好地用于提交,但不会显示验证错误 我不知道如何传递slug(DetailView需要)和表单(其中包含验证错误) 我没有试图在html模板中显示slug——我需要slug来检索条目的detailview 网址: 似乎这只是因为我缺少python/django-foo而犯的新手错误 最终目标是显示相同的DetailView页面(有没有一种方法可以在不将slug传递到url的情况下执行此操作?)

我正在使用DetailView显示一个条目,并且在同一页面上还有一个评论表单

commment表单可以很好地用于提交,但不会显示验证错误

我不知道如何传递slug(DetailView需要)和表单(其中包含验证错误)

我没有试图在html模板中显示slug——我需要slug来检索条目的detailview

网址:

似乎这只是因为我缺少python/django-foo而犯的新手错误

最终目标是显示相同的DetailView页面(有没有一种方法可以在不将slug传递到url的情况下执行此操作?)


到处搜索,找不到任何相关的答案。

如果您将其重构为使用评论模块附带的一个CustomTag会怎么样


你能用
get\u comment\u form
标记
object
来避免传递表单吗?

你所尝试的没有意义。您正在调用
render
函数,将
reverse
的结果(即URL)作为模板传递。你为什么这么做

但是,为了真正帮助你,我们需要知道你实际上在做什么。这个奇怪的密码在哪里?它是在视图函数、基于类的视图方法、模板标记中还是在其他地方

发布完整代码后编辑

该视图代码有几处错误(空白的
例外,只做
传递
?),但我将集中讨论当前的问题。您似乎让这变得比需要的困难得多:如果您想将表单和slug/URL都传递给模板,您只需将它们放在模板上下文中,然后像平常一样将上下文传递给
render
。这里没有什么不寻常或复杂的事情

return render(
    request,
    self.template_name,
    {'entry_comment_form':entry_comment_form, 'slug': slug}
)
请注意,最好在上下文中传递
slug
,并在模板中使用
url
标记:

{% url 'entry_detail' slug=slug %}

但这与渲染无关。这是用于呈现模板的,因此得名。你为什么打电话给render?你仍然没有解释你希望用这些东西做什么。您需要在上下文中正确解释此代码的位置:即发布实际视图,显示您调用它的位置以及您希望对响应执行的操作。抱歉,我不准备进一步帮助您,除非您显示使用此函数的实际代码以及函数的完整代码(不是您现在发布的无效代码段).
return render(
    request,
    self.template_name,
    {'entry_comment_form':entry_comment_form, 'slug': slug}
)
{% url 'entry_detail' slug=slug %}