在 Google App Engine 中的 ModelForm 中设置父级
我想在通过 ModelForm 创建的实体中创建实体组关系。
如何传递父实例并在 ModelForm 中设置 parent=
属性?
I want to create an Entity Group relationship in an Entity that is being created through a ModelForm.
How do I pass the parent instance and set the parent=
attribute in the ModelForm?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我很想看看您是否能找到解决这个问题的好方法。我自己的解决方案远非优雅,是这样做的:
基本上,我首先创建一个具有正确父关系的虚拟对象(在本例中为
chapter
),然后将其作为传递表单构造函数的实例
参数。该表单将使用请求中给出的数据覆盖我用于创建虚拟对象的一次性数据。最后,为了获得真正的子对象,我做了这样的事情:I'll be interested to see if you get any good solutions to this problem. My own solution, which is far from elegant, is to do this:
Basically, I first create a dummy object (
chapter
in this case) with the correct parent relationship and then pass that as theinstance
argument to the form's constructor. The form will overwrite the throwaway data I used to create the dummy object with the data given in the request. At the end, to get the real child object, I do something like this:我对 djangoforms.ModelForm 进行子类化并添加了一个创建方法*:
用法很简单:
请注意,我没有复制/粘贴允许您在 request.POST 中指定 key_name 的代码,而是将其作为参数传递给 create。
* 代码是根据
google.appengine.ext.db.djangoforms
中原始 modelform 的 save 方法修改的。I subclassed djangoforms.ModelForm and added a create method*:
Usage is simple:
Note that I did not copy/paste the code that lets you specify the key_name in request.POST, instead I have it passed as an argument to create.
* Code is modified from the save method of the original modelform in
google.appengine.ext.db.djangoforms
.