von sites/models.pyNoReverseMatch Fehler nach
def get_absolute_url(self):
return reverse('site-detail', kwargs={'pk':self.pk})
sites/urls.py
from django.conf.urls import url
from sites.views import SiteCreate, SiteUpdate, SiteDelete, IndexView, TestedView, DetailView, ApproveSite
app_name = 'sites'
urlpatterns = [
url(r'^$', IndexView.as_view(), name='site-list'),
url(r'add/$', SiteCreate.as_view(), name='site-add'),
url(r'(?P<pk>[0-9]+)/update/$', SiteUpdate.as_view(), name='site-update'),
url(r'delete/$', SiteDelete.as_view(), name='delete'),
url(r'tested/$', TestedView.as_view(), name='site-tested'),
url(r'(?P<pk>[0-9]+)/$', DetailView.as_view(), name='site-detail'),
url(r'approve/$', ApproveSite.as_view(), name='approve')
]
von sites/views.py
Form in Django Aktualisierungclass DetailView(generic.DetailView):
model = Site
template_name = "sites/detail.html"
context_object_name = "site"
sites/forms.py
from django import forms
from sites.models import Site, Category
class SiteForm(forms.ModelForm):
class Meta:
model = Site
fields = '__all__'
exclude = ('Status',)
Wenn ich eine Website aktualisieren, um die Form von meiner Website Update Ansicht verwenden, möchte ich es mir auf der Website Detailansicht nehmen, aber es wirft einen NoReverseMatch Fehler. Im Einzelnen:
NoReverseMatch at /sites/1/update/
Reverse for 'site-detail' with arguments '()' and keyword arguments '{'pk': 1}' not found. 0 pattern(s) tried: []
Warum wird dieser Fehler passiert, und wie kann ich es loswerden, so dass mein App die Detailansicht für meine Website Aufzeichnung zeigt, nach meiner Form vorgelegt wird?
Great stuff, danke Alasdair. – RubyNoob