Я создаю свое первое приложение (угадай приложение) с Django, пока у меня все хорошо.Но я столкнулся с ошибкой при попытке перенаправить в подробный вид, когда пользователь отправляет файл с помощью функции отправки (аналогично сценарию «публикация в блоге»).
Я просмотрел несколько сообщений с той же проблемой и не могу понять, почему мой код не работает.
views.py
@login_required
def submit(request):
if request.method == 'POST':
submited_form = SubmitFileForm(request.POST, request.FILES)
if submited_form.is_valid():
...
form.save()
return HttpResponseRedirect(reverse('result-detail'), kwargs={'pk': form.pk})
else:
submited_form = SubmitFileForm()
return render(request, 'guess/submit.html', context)
class ResultDetailView(LoginRequiredMixin, DetailView):
model = Result
template_name = 'guess/result_detail.html'
context_object_name = 'result'
Я знаюЯ смешиваю представления на основе классов с представлениями на основе функций, но по какой-то причине я не могу заставить работать свою функцию отправки, когда пытаюсь реализовать ее как представление на основе классов.Во всяком случае, я думаю, что это не должно быть проблемой
urls.py
url_patterns = [
...
path('result/<int:pk>', guess_views.ResultDetailView.as_view(), name='result-detail'),
...
]
result_detail.html
{% extends "guess/base.html" %}
{% block content %}
<article class="media content-section">
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="#">{{ result.author }}</a>
<small class="text-muted">{{ result.date_posted }}</small>
</div>
<h2 class="article-title">{{ result.title }}</h2>
<p class="article-content">{{ result.statistic }}</p>
</div>
</article>
{% endblock content %}
Я бы ожидал перенаправления на деталипредставление объекта, созданного с помощью функции submit и submitfileform (форма модели).Я могу получить доступ к деталям, если я просто наберу / result / и первичный ключ любого созданного объекта.Но, видимо, я не могу сделать то же самое с помощью перенаправления.
Я получаю ошибку:
NoReverseMatch at /submit/
Reverse for 'result-detail' with no arguments not found. 1 pattern(s) tried: ['result/(?P<pk>[0-9]+)$']