找不到带有参数'('',)'的'post-detail'后退

时间:2019-05-25 19:16:46

标签: python django python-3.x

在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'),

我尝试了所有在线帮助,但没有成功。我只希望能够在博客文章下发表评论... 如果有人知道我应该朝哪个方向走,那就太好了!

1 个答案:

答案 0 :(得分:1)

您可以这样更改网址:

path('post/<int:pk>', PostDetailView.as_view(), name='post-detail')

或者如果您想与其他字段一起使用,请使用“ pk”

像这样:

<slug:title>