Django 使UpdateView接受URL.py中的加密pk,并在解密pk后返回模型对象进行编辑
我有一个简单的基于工作类的视图继承UpdateViewDjango 使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-]+)$'
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
希望这对别人有帮助