私はユーザーが自分の投稿を作成/更新できるビューを持っています。しかし、ユーザーが編集を終えたら、投稿に戻ることができます(要約)。しかし、どこかで私が見つけることができないエラーがあります。どのような問題が起こっているのでしょうか?NoReverseMatchエラーDjango - UpdateView
エラー:1)引数 '()'およびキーワード引数 '{' id ':2}'がない 'aircraftdetail'は逆転します。 []
2)リターンHttpResponseRedirect(instance.get_absolute_url())
3)リターン逆( 'aircraftdetail'、kwargsからは= { "ID":自己0パターン(複数可)を試みました。 ID})
views.py
def AircraftUpdate(request, id=None):
instance = get_object_or_404(Aircraft, id=id)
form = AircraftForm(request.POST or None, instance=instance)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
return HttpResponseRedirect(instance.get_absolute_url())
context={"aircraft":instance, "form":form}
return render(request,'aircraft_form.html',context)
Models.py
class Aircraft(models.Model):
title = models.CharField(max_length=50, default="")
image = models.ImageField(upload_to = 'static/image_upload', blank=True)
cost = models.DecimalField(max_digits=8, decimal_places=3)
def get_absolute_url(self):
return reverse('aircraftdetail', kwargs={"id": self.id})
Urls.py - 航空機
urlpatterns = [
url(r'^detail/(?P<id>\d+)/$', views.AircraftDetail, name='AircraftDetail'),
url(r'^detail/(?P<id>\d+)/edit/$', views.AircraftUpdate, name='AircraftEdit'),
url(r'^$', views.AircrafList, name='aircraft'),]
Urls.py AviationSite(メイン)
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'aircraft/', include('aircraft.urls')),
url(r'^login/', login_view, name="login"),
url(r'^logout/', logout_view, name="logout"),
url(r'^register/', register_view, name="register"),
url(r'^aircraft/create/$', AircraftCreate),]
Pythonでは、あなたのビュー関数 'aircraft_update'を呼び出すことをお勧めします。 'AircraftUpdate'を使うと、他のDjangoユーザにクラスベースのビューのように見えます。 – Alasdair