私はNoReverseMatchの問題は私のURLに何かを意味することを知っているが、問題はアンNoReverseMatchはエラー
views.pyここで私は見つけることができませんでした:urls.pyで
def edit(request,post_id):
e = Note.objects.get(id=post_id)
form = Edit()
if request.method == 'POST':
form = Edit(request.POST.copy())
if form.is_valid():
data1 = form.cleaned_data
g = Note.objects.get(id=post_id)
g.title = data1['title']
g.content = data1['content']
g.category = data1['category']
g.subject_name = data1['subject_name']
g.save()
return HttpResponseRedirect('/notebook/')
else:
return HttpResponse('Not good')
else:
form = Edit(initial={'title': e.title,'content': e.content, 'category' : e.category,
'subject_name': e.subject_name})
return render(request,'notebook/edit.html',{'form': form})
:
urlpatterns = [
url(r'^$', views.homepage, name='homepage'),
url(r'^(?P<post_id>[0-9]+)/$', views.detail, name='detail'),
url(r'^(?P<post_id>[0-9]+)/delete/$', views.delete, name='delete'),
url(r'^edit/(?P<post_id>[0-9]+)/$', views.edit, name='edit'),
url(r'^/post/$', views.post, name='post'),
url(r'^category(?P<category>\w+)/$', views.show_category, name='show_category'),
url(r'^subject(?P<id>\w+)/$', views.show_subject, name='show_subject'),
url(r'^/create_subject/$', views.create_subject, name='create_subject'),
# url(r'/upload_image/$', views.upload_image, name='upload_image'),
]
エラー:
Reverse for 'edit' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: ['notebook/edit/(?P<post_id>[0-9]+)/$']
そして、Subjectクラスを追加する前に、私はこれが重要だと言っています。これは、フォームが最初に何も関係していなかったことを意味します。edit()関数はうまくいきました。 それに、私の形の部分は次のようになります。
class Edit(forms.Form):
title = forms.CharField(label=('title')
content = forms.CharField(label=('content'),widget=forms.Textarea)
category = forms.CharField(label=('category')
subject_name = forms.ModelChoiceField(queryset=Subject.objects.all())
それらをハードコーディングするのではなく、URLのを取得するために、または逆reverse_lazy使用する必要があります'url – Sayse
これ以外にも、正規表現からスラッシュを削除する必要があります。' r '^ post/$' 'と' r '^ create_subject/$' 'でなければなりません。 – Alasdair