私はブログプロジェクトに取り組んでいます。ここにはホームページのブログのすべての投稿が表示されています。私は各ブログエントリの編集機能を持っており、公開とキャンセルの2つのオプションがあります。Django:編集をキャンセルしても前のページにリダイレクトされない
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
HTMLで、それは次のようになります:
{% extends 'blog/base.html' %}
{% block content %}
<h1>Edit post</h1>
<form method="POST" class="post-form">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default" >Publish</button>
<a class="btn btn-default" href="{% url 'post_detail' pk=? %}">Cancel</a>
</form>
{% endblock %}
のURL
これはviews.pyでは、それはこのようになります
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title', 'text',)
ように私の形が見えるものです。 py
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),
url(r'^post/new/$', views.post_new, name='post_new'),
url(r'^post/(?P<pk>\d+)/edit/$', views.post_edit, name='post_edit'),
url(r'^post/(?P<pk>\d+)/remove/$', views.post_remove, name='post_remove'),
url(r'^post/(?P<pk>\d+)/comment/$', views.add_comment, name='add_comment_to_post'),
url(r'^comment/(?P<pk>\d+)/remove/$', views.comment_remove, name='comment_remove'),
url(r'^comment/(?P<pk>\d+)/edit/$', views.comment_edit, name='comment_edit'),
]
私はhtmlのpkが何であるか把握できませんでした。私はpkとpost.pkを試しましたが、どちらかが動作します。誰でも手伝うことができます。あなたのコードでは、
{{ form.as_p }}
は動作しませんので、おかげですべての
テンプレート内で、{{form.as_p}}というコードを使ってアクセスしようとしているフォームはどこですか? あなたはあなたの意見を送信する必要があります。また、コンテキストdict()を使って "pk"問題を解決してください。もう一度あなたの意見からそれを送っていません(pk)。 –
「post.id」を試してください –