Обратный запрос для "page" без аргументов не найден. Проверен 1 шаблон(ы)
Недавно я начал тестировать и изучать Django и создаю несколько проектов, чтобы изучить и протестировать его. Я пытался искать ответы в документации, но не смог их найти, если вы можете прислать мне ссылку на документацию для решения этой проблемы с вашим решением/советом, я буду благодарен.
Я пытаюсь передать аргумент через URL в Django, url меняется и int появляется в браузере при перенаправлении (т.е. http://127.0.0.1:8000/edit-contact/1 - 1 ставится динамно от "перенаправления"), но, видимо, функция view не может его распознать
кнопка, которую я использую для перенаправления и отправки аргумента
<a href="{% url 'edit-contact' contato.id%}" class="btn btn-primary">
Edit contact
</a>
файлurls.py:
urlpatterns = [
path('', views.index, name='index'),
path('busca/', views.search, name='busca'),
path('<int:contato_id>', views.details, name='detalhes'),
path('edit-contact/<int:contato_id>',
views.edit_contact, name='edit-contact'),
]
функция просмотра, которую я использую для перехвата запроса
@login_required(redirect_field_name='login')
def edit_contact(request, contato_id):
if request.method != 'POST':
form = ContatoForm()
return render(request, 'contatos/detalhes.html', {'form': form, 'contato_id': contato_id})
Traceback:
Ставит ли он "/" после 1? В url вашего браузера I.e 127.1.1.8000/edit-contact/1/
Ставит ли он "/" после 1? В url вашего браузера I.e 127.1.1.8000/edit-contact/1/
Ну, я не могу сказать, является ли это решением или просто обходным путем, но я кое-что сделал, и теперь это работает, по-видимому. По крайней мере, я больше не получаю сообщение об ошибке. Вот что я сделал.
Я добавил urlpattern для случая, когда у edit-contact не было аргумента, потому что именно об этом говорит ошибка, или, по крайней мере, это то, что я понял из нее.
urlpatterns = [
path('', views.index, name='index'),
path('busca/', views.search, name='busca'),
path('<int:contato_id>', views.details, name='detalhes'),
path('edit-contact/', views.edit_contact, name='edit-contact'),
path('edit-contact/<int:contact_id>',
views.edit_contact, name='edit-contact'),
]
Я пришел к этому решению после прочтения множества постов здесь в SO, чтения документации по Django и самостоятельных размышлений. Если кто-то считает, что я не прав или у меня есть лучшее решение, я открыт для предложений, в конце концов я только начал изучать Django.
пришлите ваш файл models.py, возможно, это орфографическая ошибка