Django UpdateView without pk in url

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