Django UpdateView without pk in url

前端 未结 2 591
半阙折子戏
半阙折子戏 2020-12-08 21:27

Is it possible eliminate pk from url related to UpdateView?

For example, if I have

url(r\'^myobj/update/(?P\\d+)         


        
相关标签:
2条回答
  • 2020-12-08 22:02

    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
    
    0 讨论(0)
  • 2020-12-08 22:08

    Sometimes it works like this

    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
    
    0 讨论(0)
提交回复
热议问题