在django中,我遇到了一些问题,无法理解使用{{}}到模板的数据传输时的更改……它似乎一直都在变化。为什么呢这是我的代码给我的错误: 找不到带有参数'('',)'的'post-detail'。尝试了1个模式:['post /(?P [0-9] +)$']
我的观点似乎还不错,我的模板也是如此。 而且我不知道为什么我应该更改我的网址,因为它工作正常。
### app views
class PostDetailView(LoginRequiredMixin, DetailView):
model = Post
template_name = 'blog/post_detail.html'
def get_context_data(self,*arg, **kwargs):
context = super().get_context_data(**kwargs)
form = CommentForm()
context['form'] = form
return context
def post(self, request,*arg, **kwargs):
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
form.save()
else:
form = CommentForm()
context ={
'form':form
}
return render(request, self.template_name, context)
模板:
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form | crispy }}
<button class="btn btn-primary" type="submit" > submit </button>
<input value="bad word" type="submit" onclick="{% url 'post-detail' post.id %}">
</form>
网址:
path('post/<int:pk>', PostDetailView.as_view(), name='post-detail'),
我尝试了所有在线帮助,但没有成功。我只希望能够在博客文章下发表评论... 如果有人知道我应该朝哪个方向走,那就太好了!
答案 0 :(得分:1)
您可以这样更改网址:
path('post/<int:pk>', PostDetailView.as_view(), name='post-detail')
或者如果您想与其他字段一起使用,请使用“ pk”
像这样:
<slug:title>