Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 使UpdateView接受URL.py中的加密pk,并在解密pk后返回模型对象进行编辑_Django_Django Models_Django Views_Django Generic Views - Fatal编程技术网

Django 使UpdateView接受URL.py中的加密pk,并在解密pk后返回模型对象进行编辑

Django 使UpdateView接受URL.py中的加密pk,并在解密pk后返回模型对象进行编辑,django,django-models,django-views,django-generic-views,Django,Django Models,Django Views,Django Generic Views,我有一个简单的基于工作类的视图继承UpdateView class UpdateModel(UpdateView): model = ModelName fields = ['field_1' , 'field_2' , ] template_name_suffix = '_update_form' success_url = reverse_lazy('home') 以及映射回此视图的url url(r'^edit/(?P<pk>[\w-]+)$'

我有一个简单的基于工作类的视图继承UpdateView

class UpdateModel(UpdateView):
    model = ModelName
    fields = ['field_1' , 'field_2' , ]
    template_name_suffix = '_update_form'
    success_url = reverse_lazy('home')
以及映射回此视图的url

url(r'^edit/(?P<pk>[\w-]+)$' , UpdateModel.as_view() , name="update_model"),
ans类似地,我使用hashids.decode('string')来获取模型对象

但在UpdateView中没有对此的规定(据我所知)。在urls.py中,它只接受pk id,以返回更新模型的相关表单。 我知道我必须以某种方式覆盖UpdateView或它的任何函数,但不知道如何覆盖。我可以知道如何编辑UpdateView的这个功能吗


提前感谢。

这是一个简单的调整。在阅读了源代码之后,我发现我只需要扩展

def get_对象(自身)

SingleObjectMixin(ContextMixin)类中声明

代码看起来像

class UpdateModels(UpdateView):
    #declare model, fields, template_name etc.

    def get_object(self):
        #decode and get the object in the variable desired_model_object 
        return desired_model_object

希望这对某人有所帮助。

这只是一个简单的调整。在阅读了源代码之后,我发现我只需要扩展

def get_对象(自身)

SingleObjectMixin(ContextMixin)类中声明

代码看起来像

class UpdateModels(UpdateView):
    #declare model, fields, template_name etc.

    def get_object(self):
        #decode and get the object in the variable desired_model_object 
        return desired_model_object
希望这对别人有帮助