我正在开发一个博客项目,它显示主页上博客的所有帖子。我为每个博客条目都有一个编辑功能,并包含两个选项:发布和取消。Django:取消编辑后重定向到上一页
这是我的形式看起来像
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title', 'text',)
在views.py它看起来像这样:
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 %}
网址。 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}}'在模板中访问的表单在哪里? 你必须通过你的意见发送它。还使用上下文字典()来解决你的“PK”问题。再次,你不是从你的意见中发送它(pk)。 –
试试'post.id' –