Исправление ошибки NoReverseMatch для проекта Django
Я пытаюсь исправить ошибку No Reverse Match для моего проекта django, но не могу понять причину и последовательность действий для ее устранения.
Моя задача состоит в том, чтобы нажать на кнопку и изменить статус булевой величины с False на True и если статус False, то появиться, а если true, то исчезнуть.
Вот модель:
class Workout(models.Model):
active = models.BooleanField(default=False)
Вот вид:
def change_status(request, pk):
url = request.META.get('HTTP_REFERER') # get last url
startsession = Workout.objects.get(id=pk)
startsession.active = True
startsession.save()
return HttpResponseRedirect(url)
Вот шаблон:
{% if startsession.active %}
<button disabled="disabled" type="button">Start the workout</button>
{% else %}
<a href="{% url 'my_gym:bla' startsession.pk %}"> <--------Error here
<button type="button">Start the workout</button>
</a>
{% endif %}
вот url:
path('workout/bla/<int:pk>/', change_status, name='bla'),
и, наконец, вот ошибка Traceback:
Traceback (most recent call last):
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\core\handlers\base.py", line 204, in _get_response
response = response.render()
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\response.py", line 105, in render
self.content = self.rendered_content
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\response.py", line 83, in rendered_content
return template.render(context, self._request)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\backends\django.py", line 61, in render
return self.template.render(context)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\base.py", line 170, in render
return self._render(context)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\base.py", line 162, in _render
return self.nodelist.render(context)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\base.py", line 938, in render
bit = node.render_annotated(context)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\base.py", line 905, in render_annotated
return self.render(context)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\defaulttags.py", line 312, in render
return nodelist.render(context)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\base.py", line 938, in render
bit = node.render_annotated(context)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\base.py", line 905, in render_annotated
return self.render(context)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\template\defaulttags.py", line 446, in render
url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\urls\base.py", line 87, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "C:\Users\User\Desktop\Portfolio\venv\lib\site-packages\django\urls\resolvers.py", line 685, in _reverse_with_prefix
raise NoReverseMatch(msg)
Если можно посоветовать, как лучше всего подумать об исправлении такой ошибки и почему она появляется и причины, по которым она может появиться