私のブログに編集ビューを追加しましたので、私のアシスタントは管理領域ではなくフロントエンドから編集できます。最後に/edit/
属性を除いて、post_edit
のURL設定がpost_detail
と同じです。投稿を確認していて、手動でURL末尾に/edit/
を追加すると効果的ですが、編集ボタンとパラメータを渡す際に問題が発生しています。Django NoReverseMatch on post_edit URL
これは、ブラウザのエラーである:プレス/ 2016/05/23/gdfgdfcdcd /は 引数 '(2016、5、23、 'gdfgdfcdcd')' と 'post_edit' のリバース/ AT
NoReverseMatchキーワード引数 '{}'が見つかりません。 1つのパターンが試された:['/(?P \ d {4})/(?P \ d {2})/(?P \ d {2})/(?P [ - \ w] + )/ edit/$ ']
ありがとうございます。
URL
urlpatterns = [
...
url(r'^press/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<post>[-\w]+)/$', views.post_detail, name='post_detail'),
url(r'^press/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<post>[-\w]+)/edit/$', views.post_edit, name='post_edit'),
...
]
ビュー
def post_edit(request, year, month, day, post):
post = get_object_or_404(Post, slug=post, status='published', created__year=year, created__month=month, created__day=day)
if request.method == "POST":
form = PostForm(request.POST, instance=post)
if form.is_valid():
post = form.save(commit=False)
form.save()
form.save_m2m()
return HttpResponseRedirect(post.get_absolute_url())
else:
form = PostForm(instance=post)
return render(request, 'press/post_edit.html', {'post': post, 'form': form})
テンプレートURLで
<a href="{% url 'press:post_edit' post.created.year post.created.month post.created.day post.slug %}"><i class="fa fa-envelope-o" aria-hidden="true"></i> Edit Post</a>
エラーメッセージは、使用されている 'post_edit'パターンを示しています...最後に'/edit/'が表示されているので、私は仮定します。パラメータを持つ唯一の2つのURLパターンが含まれています。 –