9

ist möglich, es pk von url beseitigen zu UpdateView zu tun?Django UpdateView ohne pk in url

Zum Beispiel, wenn ich

url(r'^myobj/update/(?P<pk>\d+)/$', views.UpdateMyObj.as_view(), name="update") 

habe, ist es eine Möglichkeit, es zu schreiben, wie

url(r'^myobj/update/$', views.UpdateMyObj.as_view(), name="update") 

und dann pk als Parameter in POST oder GET Anfrage senden?

+1

Für eine kürzere Alternative zu dieser Antwort sehen diesen Beitrag: http://stackoverflow.com/questions/6181041/updating-user- model-in-django-mit-klassenbasierte-updateview – Staccato

Antwort

25

Ja, es ist möglich, Sie müssen nur die get_object Methode außer Kraft zu setzen:

from django.views.generic.edit import UpdateView 

class UpdateMyObj(UpdateView): 
    # ..... 

    def get_object(self): 
     return MyModel.objects.get(pk=self.request.GET.get('pk')) # or request.POST 
+0

Haben Sie einen Link zur Implementierung? Dank –

+1

Es ist sinnvoll, get_object_or_404 zu verwenden Objekt –

+0

Best Practice zu bekommen, ist nicht für Updates auf dem Server 'request.GET' zu verwenden. Am besten verwenden Sie stattdessen 'request.POST'. – Semmel