前提・実現したいこと
Djangoを用いて、保存されたデータを更新するWebFormを作成したいが、
NoReverseMatchになってしまい、
Webでいろいろ検索しても基本的な部分の修正のみで解決に至らなかった。
Djangoを使い始めて2週間程度なので、頓珍漢なことをして時間を無駄にしないよう、
質問させていただく。
解決に必要な情報等あれば、言ってください。
発生している問題・エラーメッセージ
作成したWebFormを読み込むと、NoReverseMatchになる。
NoReverseMatch at /trans_request_edit/1/ Reverse for 'trans_request_edit' with keyword arguments '{'PK': ''}' not found. 1 pattern(s) tried: ['trans_request/edit/(?P<PK>[0-9]+)/$']
該当のソースコード
開発環境
Python 3.8.0
Django 2, 1, 15
SQL Server 2017 Express
Google Chrome
##urls.py from django.urls import path from . import views urlpatterns = [ path('', views.trans_request_list, name = 'trans_request_list'), path('trans_request/<int:PK>/', views.trans_request_detail, name = 'trans_request_detail'), path('trans_request/new', views.trans_request_new, name='trans_request_new'), path('trans_request/edit/<int:PK>/', views.trans_request_edit, name='trans_request_edit'), ]
##views.py def trans_request_edit(request, PK): requests = get_object_or_404(Request, pk=PK) form = RequestForm_Edit(instance=requests) return render(request, 'trans_request/trans_request_edit.html', {'form' : form, 'requests' : requests})
##trans_request_edit.html {% extends 'trans_request/base.html' %} {% block content %} <h2>Edit request</h2> <form action="{% url 'trans_request_edit' PK=request.serial_no %}" method="POST">{% csrf_token %} {{ form.as_p}} <button type="submit" class="save btn btn-default">Save</button> </form> {% endblock %}
試したこと
views.py の
form = RequestForm_Edit(instance=requests)
を
form = RequestForm_Edit()
に置き換えたがエラー解消されず。
url_patterns の
'trans_request/edit/int:PK/'
を
'trans_request_edit/int:PK/'
に置き換えたがエラー解消されず。
補足情報(FW/ツールのバージョンなど)
本Form作成にあたり参考にしたサイト
DjangoでCRUD
https://qiita.com/zaburo/items/ab7f0eeeaec0e60d6b92
メモの削除と更新 - Djangoの学習ができるチュートリアルサイト
https://djangobrothers.com/tutorials/memo_app/delete_edit/
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/23 23:58 編集
2020/06/24 02:37