我想在通过 ModelForm 创建的实体中创建实体组关系。

如何传递父实例并在 ModelForm 中设置 parent= 属性?

最佳答案

我会很感兴趣,看看你是否有任何好的解决方案来解决这个问题。我自己的解决方案远非优雅,是这样做的:

book = models.Book(title='Foo')
chapter = models.Chapter(parent=book, title='dummy')
form = forms.ChapterForm(request.POST, request.FILES, instance=chapter)

基本上,我首先创建一个具有正确父关系的虚拟对象(在本例中为 chapter),然后将其作为 instance 参数传递给表单的构造函数。该表单将使用请求中给出的数据覆盖我用来创建虚拟对象的一次性数据。最后,为了获得真正的子对象,我做了这样的事情:
if form.is_valid():
    chapter = form.save()
    # Now chapter.parent() == book

关于python - 在 Google App Engine 的 ModelForm 中设置父级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2097225/

10-10 20:22