django 更新表单,谁传递对象 ID?
django update forms, who pass object id?
我尝试创建一个简单的 ModelForm
,我注意到即使我像那样传递一个更新实例
mymodel = MyModel.objects.get(pk=1)
MyModelForm(instance=mymodel)
django 不会创建隐藏字段或以某种方式在模板中包含对象的 pk。所以我需要自己通过这个?
我不喜欢将我的 id 像 1,2,3.. =21=]
因此,如果我想在我的模板中包含此 id,格式为 POST 数据,
我不明白究竟是谁负责检索该 ID - 是视图还是表单本身?
我所说的视图是指内置 FormView
或 UpdateView
,这些视图如何找到对象 ID?假设将 signing.dumps(object_id)
的输出存储在隐藏字段
中
当您进入模板时,表单构建已经完成。如果是 modelForm,您可以尝试访问 form.instance.id。
但是,您很可能不需要模板中的 pk,对吗?如果愿意,您还可以使用实例 pk 值注入一个隐藏的表单字段。为什么需要模板中的 pk?
如果您想从 POST 数据重定向到另一个页面,您将有权访问视图本身中的对象 pk。
根据官方文档,内置视图继承自 django.views.generic.detail.SingleObjectTemplateResponseMixin class,这需要与之混合的视图提供 self.object 属性。
我尝试创建一个简单的 ModelForm
,我注意到即使我像那样传递一个更新实例
mymodel = MyModel.objects.get(pk=1)
MyModelForm(instance=mymodel)
django 不会创建隐藏字段或以某种方式在模板中包含对象的 pk。所以我需要自己通过这个?
我不喜欢将我的 id 像 1,2,3.. =21=]
因此,如果我想在我的模板中包含此 id,格式为 POST 数据,
我不明白究竟是谁负责检索该 ID - 是视图还是表单本身?
我所说的视图是指内置 FormView
或 UpdateView
,这些视图如何找到对象 ID?假设将 signing.dumps(object_id)
的输出存储在隐藏字段
当您进入模板时,表单构建已经完成。如果是 modelForm,您可以尝试访问 form.instance.id。
但是,您很可能不需要模板中的 pk,对吗?如果愿意,您还可以使用实例 pk 值注入一个隐藏的表单字段。为什么需要模板中的 pk?
如果您想从 POST 数据重定向到另一个页面,您将有权访问视图本身中的对象 pk。
根据官方文档,内置视图继承自 django.views.generic.detail.SingleObjectTemplateResponseMixin class,这需要与之混合的视图提供 self.object 属性。