Реверс для 'post-detail' с аргументами '(' ',)' не найден - PullRequest
0 голосов
/ 25 мая 2019

В django у меня есть проблемы с пониманием изменений при обработке передачи данных в шаблоны с {{}} ... кажется, что они постоянно меняются. Зачем ? Здесь мой код дает мне ошибку: Реверс для 'post-detail' с аргументами '(' ',)' не найден. Попробован 1 шаблон (ов): ['post / (? P [0-9] +) $']

На мой взгляд, все в порядке, как и мой шаблон. И я не знаю, почему я должен изменить свой URL, поскольку он работал нормально ..

### 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>

URL:

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

Я попробовал каждую справочную публикацию онлайн, но безуспешно. Я просто хочу иметь возможность оставлять комментарии в блоге ... Если кто-то знает, в каком направлении я должен идти, это было бы здорово!

1 Ответ

1 голос
/ 25 мая 2019

Вы можете изменить свой URL следующим образом:

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

или если вы хотите использовать слизняк с другим полевым использованием вместо "pk"

следующим образом:

<slug:title>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...