Django 如何包含指向子模型的表单集中引用的父模型的指针?
我有一个与使用的模型相关的表单集。提交表单时,我遇到以下错误:Django 如何包含指向子模型的表单集中引用的父模型的指针?,django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,我有一个与使用的模型相关的表单集。提交表单时,我遇到以下错误: MultiValueDictKeyError "Key 'form-0-mediaitem_ptr' not found in <QueryDict: {u'form-0-caption': [u'asfdasda'], u'form-MAX_NUM_FORMS': [u''], u'form-TOTAL_FORMS': [u'1'], u'form- INITIAL_FORMS': [u'1'], u'img_info_
MultiValueDictKeyError
"Key 'form-0-mediaitem_ptr' not found in <QueryDict: {u'form-0-caption':
[u'asfdasda'], u'form-MAX_NUM_FORMS': [u''], u'form-TOTAL_FORMS': [u'1'], u'form-
INITIAL_FORMS': [u'1'], u'img_info_submitted': [u'save to library'],
u'csrfmiddlewaretoken': .......
以下是用于表单集的表单:
class ImageInfoForm(forms.ModelForm):
class Meta:
model = ImageItem
def __init__(self, *args, **kwargs):
super(ImageInfoForm, self).__init__(*args, **kwargs)
self.fields['caption'].widget = forms.Textarea(attrs = {'placeholder': 'caption'})
caption = forms.CharField(widget = forms.Textarea(attrs = {'placeholder': 'caption'}),
max_length = 1000,
required = True)
我尝试在视图中构建表单集,如下所示:
ImageInfoFormset = modelformset_factory(ImageItem,
form = ImageInfoForm,
fields=['caption',
'mediaitem_ptr'],
extra = 0)
ImageInfoFormset = modelformset_factory(ImageItem,
form = ImageInfoForm,
extra = 0)
我也试过这样做:
ImageInfoFormset = modelformset_factory(ImageItem,
form = ImageInfoForm,
fields=['caption',
'mediaitem_ptr'],
extra = 0)
ImageInfoFormset = modelformset_factory(ImageItem,
form = ImageInfoForm,
extra = 0)
在模板中,我要确保在{%for formset%}
循环中使用整个{{{form}}
标记
考虑到他自己的问题,我将ImageForm
更改为以下内容,但运气不佳:-(
有人知道如何解决这个问题吗?我知道,为了更新正确的实例,父模型的指针必须在表单中,但我如何做到这一点呢?谢谢!我根据您的示例制作了一个示例应用程序,当我提交表单时,它按预期工作,没有收到您提到的错误
在您的情况下,当您使用
{form}进行渲染时,应该会得到mediateItem\u ptr
的隐藏输入
。在您引用的答案中,作者正在单独呈现字段,在这种情况下,您需要手动包含指针输入字段。我根据您的示例制作了一个示例应用程序,当我提交表单时,它按预期工作,没有收到您提到的错误
在您的情况下,当您使用
{form}进行渲染时,应该会得到mediateItem\u ptr
的隐藏输入
。在您引用的答案中,作者正在单独呈现字段,在这种情况下,您需要手动包含指针输入字段。您使用的是什么版本的Django?我没有收到您在使用示例模型和表单提交表单时提到的错误。您能发布您的模板代码吗?@maulik13 Wow,我们已经在整个应用程序的大多数页面的页眉中实现了此图像上载表单。我们的模板继承是基于每个应用程序的。我在一个模板的页眉中添加了{{form}
(正确;没有使用此页面进行测试),在另一个模板的页眉中添加了{{form.caption}
(不正确,我用这个页面来测试。)愚蠢的我。它一直都是对的…再见,浪费的赏金:-(@maulik13感谢你做了所有的工作并测试了它。因为你的回答“我不明白你提到的错误”在技术上是这个问题的正确答案(参考我发布的所有信息),我很乐意将您的答案标记为正确。只需将其作为一个答案而不是注释来写。如果缺少明显的错误,这是一个令人沮丧的发现。只有我知道我犯了多少愚蠢的错误。您使用的是什么版本的Django?我没有收到您在使用示例模型和表单提交表单时提到的错误。您能发布您的错误吗emplate code?@maulik13哇。所以,我们在整个应用程序的大多数页面的页眉中都实现了这个图像上传表单。我们的模板继承是基于每个应用程序的。我在一个模板的页眉中添加了{{form}
(正确;没有使用此页面进行测试),我有{form.caption}
在另一个模板的标题中(不正确,我使用此页面进行测试)。愚蠢的我。它一直都是对的…再见,浪费的赏金:-(@maulik13感谢您做了所有的工作并进行了测试。因为您的回答“我不知道您提到的错误”在技术上是这个问题的正确答案(参考我发布的所有信息),我很乐意将你的答案标记为正确。只需将其作为答案而不是评论来写。如果遗漏了明显的错误,那将是一件令人沮丧的事情。只有我知道我犯了多少愚蠢的错误。