私はNoReverseMatch
とAPPEND_SLASH
の2つの問題に直面しています。Django NoReverseMatchとPOST URLエラー
問題#1。 APPEND_SLASH
Detail.html
<form action="update-entry" method="post">
/* if I add '/' at the end of update-entry, it works fine. */
{% csrf_token %}
{{ form }}
<input type="submit" value="Edit">
</form>
[編集]ボタンをIをクリックすると、私は以下のエラーを取得し、
You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to 127.0.0.1:8000/genericviews/1/update- entry/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings.
これは、生成されたURLです:
I知っているURLは '/'で終わるべきです。 URLは、末尾に '/' を生成していない理由を
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^(?P<pk>[0-9]+)/$', views.DetailsView.as_view(), name='detail'),
url(r'^makeentry$', views.makeentry, name='makeentry'),
url(r'^static/$', views.StaticView.as_view()),
url(r'^new-entry/$', views.MakeEntryView.as_view(), name='new-entry'),
url(r'^(?P<pk>[0-9]+)/update-entry/$', views.UpdateEntryView.as_view(), name='update-entry'),
]
urls.pyは私の混乱があります。上記のURLパターンは正しいと思われます。
問題#2 NoReverseMatch
私はハードコードされたURLを変更しようとすると、私は以下のエラーを取得し、
NoReverseMatch at /genericviews/1/
Reverse for 'update-entry' with arguments '()' and keyword arguments '{}'
not found. 1 pattern(s) tried: ['genericviews/(?P<pk>[0-9]+)/update-
entry/$']
Detail.html
<form action="{% url 'genericviews:update-entry' %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Delete Product">
</form>
は、同様
をリンクを試してみました{#<a href="{% url 'genericviews:update-entry' %}">Edit</a>#}
http://127.0.0.1:8000/genericviews/
の項目をクリックすると、 というURLに移動します。ここにはエラーが表示されます。
他の回答を確認しても動作しませんでした。
ご協力いただければ幸いです。
'settings.py'ファイルに設定された' APPEND_SLASH'真 –
に最初の研究は、あなたの質問が、あなたは、別の質問として、各問題を提起すべきです、逆反復のエラー(おそらくこの1つ)のために複数の重複があります – Sayse
「ガイドしてください」と言うのではなく、慎重であると思われる場合は、「お時間をいただきありがとうございます」または「感謝。" – marcusshep