У меня проблема с обновлением моего DetailView, поэтому, когда я пытаюсь отправить обновленные значения, я получаю сообщение об ошибке NoReverseMatch в /task/164/. Не могли бы вы подсказать, что не так?
Спасибо!
URL:
path('excel_upload', ex_views.ExcelUploadView.as_view(), name='excel-upload'),
path('user_list', ex_views.UsersListView.as_view(), name = "user-list"),
path('excel_table', ex_views.ExcelTableView.as_view(), name = "excel-table"),
path("task/add", ex_views.TaskAddView.as_view(), name="task-add"),
path("task/<int:pk>/", ex_views.TaskDetailView.as_view(), name="task-detail"),
формы.py
class AddEditTaskForm(forms.ModelForm):
class Meta:
model = Task
exclude = ['created_by']
widgets = {
"due_date": forms.DateInput(attrs={'type':'date'}),
"completed_date": forms.DateInput(attrs={'type': 'date'}),
"name":forms.TextInput(),
"note": forms.Textarea(),
}
просмотры.py
class TaskDetailView(DetailView):
model = Task
template_name = "hana/task_detail.html"
# Add POST method
def post(self, request, pk):
task = get_object_or_404(Task, pk=pk)
form = AddEditTaskForm(request.POST, instance=task)
if "add_edit_task" in request.POST:
if form.is_valid():
form.save()
messages.success(request, "The task has been edited.")
return redirect('excel-table')
return render(request, 'hana/task_detail.html', {'form': form})
ошибка:
NoReverseMatch в /task/164/ Реверс для 'детали задачи' с аргументами '('',)' не найден. Пробовали 1 шаблон(ы): ['task\/(?P[0-9]+)\/$'] Метод запроса: URL запроса POST: http://127.0.0.1:8000/task/164/ Версия Django: 3.0.6 Тип исключения: NoReverseMatch Значение исключения:
Обратное для 'task -detail' с аргументами '('',)' не найден. Пробовали 1 шаблон(ы): ['task\/(?P[0-9]+)\/$'] Местоположение исключения: /home/lukasz/envtest2/lib/python3.6/site-packages/django/urls /resolvers.py в _reverse_with_prefix, строка 677
шаблон:
<form method="post" action="{% url 'task-detail' object.id %}" role="form" class="d-inline">
{% csrf_token %}
<div style="display:inline;">
<button class="btn btn-info btn-sm" type="submit" name="toggle_done">
{% if task.completed %} Mark Not Done {% else %} Mark Done {% endif %}
</button>
</div>
</form>
<a class="btn btn-danger btn-sm mt-1 mb-1" href={% url 'task-delete' object.id %}">Delete</a>
task_detail.html
. Пожалуйста, отредактируйте свой вопрос и опубликуйте источник для этого шаблона. - person Selcuk   schedule 03.07.2020