0

我有一个需要多次显示表格的模型。我在模型集下使用过它。我似乎对这个模型的 id 有疑问,它也是模型的主键。
我用我希望编辑的数据预填充表单集。
但是,每当我单击提交时,它都会刷新页面并显示错误消息“(隐藏字段 id)此无已存在。”
此错误专门针对隐藏的“id”字段

<input type="hidden" id="id_form-0-id" value="2972" name="form-0-id"/>

这是模板中的片段。(我从萤火虫那里得到的)问题可能是什么,因为表格无效我无法保存数据。

ProfilesFormSet = modelformset_factory(Profile,exclude = ( <items spearated by commas>), extra=0) 
profile_form_set = ProfilesFormSet(queryset = Profile.objects.filter(userprofile=userprofile).order_by('-modified_on')) 

这是代码片段。

4

2 回答 2

1

如果您使用 PostgreSQL 和 1.1beta 之前的任何版本的 Django,并且您的模型没有定义默认排序,我想您可能会看到与从数据库返回的对象的顺序不一致有关的错误(请参阅 Django Trac票9076975810163等)。

尝试在模型上设置默认排序:

class Meta:
    ordering = ('some_field',)

看看能不能解决。

于 2009-05-14T21:24:57.220 回答
0

我认为此错误是由以下原因之一引起的:

  • 您在表单集中使用的 Django 表单对象不包括模型的主键 (id)。但是,由于您使用的是 modelformset_factory,因此情况并非如此(您也不会收到该错误消息)。

  • 模板中的 HTML 表单不包含主键,即使是隐藏字段。确保您{{ form.id }}的模板中有或类似的东西,在{{ for form in formset }}循环内。

目前我想不出更多的原因,但我确信它们都将与从浏览器客户端返回的表单相关,但不知何故缺少 id 字段。

于 2009-05-14T20:50:29.330 回答