Я знаю, что проблема NoReverseMatch означает что-то не так с моим URL,, но я просто не мог найти, где проблемаNoReverseMatch Ошибка
views.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})
в urls.py:
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 – Sayse
Как в сторону, вы должны удалить ведущую косую черту из своих регулярных выражений, она должна быть' r '^ post/$' 'и' r '^ create_subject/$' '. – Alasdair