Is it possible eliminate pk
from url related to UpdateView
?
For example, if I have
url(r'^myobj/update/(?P<pk>\d+)/$', views.UpdateMyObj.as_view(), name="update")
is there any way to write it like
url(r'^myobj/update/$', views.UpdateMyObj.as_view(), name="update")
and then send pk
as a parameter in POST
or GET
request?
Yes it is possible you just need to override the get_object
method:
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
Sometimes it works like this
class MyViewUpdate(UpdateView):
def get_object(self, queryset=None):
obj = self.model.objects.get(my_id_or_name_of_field=self.kwargs['pk_or_field_name']) # instead of self.request.GET or self.request.POST
return obj
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With