是否可以从与pk
相关的网址中删除UpdateView
?
例如,如果我有
url(r'^myobj/update/(?P<pk>\d+)/$', views.UpdateMyObj.as_view(), name="update")
有没有办法像
那样写它url(r'^myobj/update/$', views.UpdateMyObj.as_view(), name="update")
然后在pk
或POST
请求中将GET
作为参数发送?
答案 0 :(得分:27)
是的,您可能只需要覆盖get_object
方法:
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
答案 1 :(得分:0)
有时候它是这样的
class MyViewUpdate(UpdateView):
def get_object(self, queryset=None):
object = 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 object