Django内联表单集错误

     2023-02-24     266

关键词:

【中文标题】Django内联表单集错误【英文标题】:Django inline formset error 【发布时间】:2012-06-27 06:11:02 【问题描述】:

我正在尝试将内联表单集添加到表单中。这是重现错误的最少代码:

models.py

class Festival(Model):
    desc = TextField(max_length=1000)

class FestivalAddress(Model):
    festival = ForeignKey(Festival, related_name="addresses")
    name = CharField(max_length="50")

urls.py

urlpatterns = patterns('',
    url('^add/$', FestivalCreateView.as_view(), name='festival_add'), 
)

views.py

class FestivalCreateView(CreateView):
    model = Festival
    form_class = FestivalForm

    #Add FestivalAddressFormset to context here

forms.py

class FestivalAddressForm(ModelForm):
    class Meta:
        model = FestivalAddress

class FestivalForm(ModelForm):
    class Meta:
        model = Festival

FestivalAddressFormSet = inlineformset_factory(FestivalForm, FestivalAddress, form=FestivalAddressForm, extra=2)

这会引发 AttributeError:'ModelFormOptions' 对象没有属性 'get_parent_list'。我有点难过,因为我正在遵循here on SO 给出的解决方案。

编辑:我删除了 FestivalCreateView 对表单集的使用,因为不管有没有它都会发生错误。

【问题讨论】:

这些信息不足以解决问题。 FestivalCreateView 甚至不使用您的表单集?您需要更新示例以显示表单集的使用方式,并发布完整的堆栈跟踪。 Greg - FestivalCreateView 正在使用表单集。我意识到该问题与该用法无关,因此我删除了该代码以使代码更清晰。 好的,那么您应该删除对 Formset 的所有引用,因为它不再在您的代码中使用... 【参考方案1】:

看来我对 inlineformset_factory 的调用不正确。根据the docs,第一个参数应该是模型,而不是表单。

【讨论】:

【参考方案2】:

应该是: FestivalAddressFormSet = inlineformset_factory(Festival, FestivalAddress, form=FestivalAddressForm, extra=2)

【讨论】:

获得类似工作的好例子haineault.com/blog/155

单元测试 django 内联表单集

】单元测试django内联表单集【英文标题】:Unittestingdjangoinlineformsets【发布时间】:2012-03-2004:20:24【问题描述】:在尝试通过内联表单集以编程方式发布新的ForeignKey对象时,我收到一个错误:ValueError:invalidliteralforint()withbase10:\'\'... 查看详情

用户同时编辑时,Django 内联表单集抛出 IndexError

】用户同时编辑时,Django内联表单集抛出IndexError【英文标题】:DjangoinlineformsetthrowsIndexErrorwhenusersareconcurrentlyediting【发布时间】:2011-07-1005:17:15【问题描述】:更新:我现在认为这是Django中的一个现有错误,报告为Ticket14642这让... 查看详情

带有内联表单集的 Django 表单验证

】带有内联表单集的Django表单验证【英文标题】:Djangoformvalidationwithinlineformsets【发布时间】:2011-09-1714:40:57【问题描述】:我在一个HTML页面上有一个主表单和三个内联forset,目的是为客户创建Estimates。“主”表单的主键用作所... 查看详情

Django - 更改内联表单集 textInput 大小属性

】Django-更改内联表单集textInput大小属性【英文标题】:Django-ChanginginlineformsettextInputsizeattribute【发布时间】:2012-11-1617:41:29【问题描述】:我有一个只有三个字段的内联表单集:classEstimate_Product_Details(models.Model):proposalID=models.Fore... 查看详情

Django:正确显示表单集错误

】Django:正确显示表单集错误【英文标题】:Django:Displayingformseterrorscorrectly【发布时间】:2011-01-1112:03:32【问题描述】:我有一个模型的内联表单集,它有一个unique_together约束。因此,当我输入不满足此约束的数据时,它会显示... 查看详情

如何在 Django 的表单中拥有嵌套的内联表单集?

】如何在Django的表单中拥有嵌套的内联表单集?【英文标题】:HowtohaveanestedinlineformsetwithinaforminDjango?【发布时间】:2011-07-2723:47:00【问题描述】:我希望这个问题还没有被问到,但我想知道是否有可能为对象提供一个基于类的... 查看详情

django 内联表单集的单选按钮

】django内联表单集的单选按钮【英文标题】:Radiobuttonfordjangoinlineformset【发布时间】:2014-11-0401:58:21【问题描述】:我需要的是下面给定表单集中每个表单的单选按钮。classAppvideoDemoForm(forms.ModelForm):classMeta:model=AppvideoDemodef__init__... 查看详情

内联表单集 is_valid 错误:列表索引超出范围

...frange【发布时间】:2014-04-1108:20:48【问题描述】:尊敬的Django专家;将内联表单集与基于类的视图结合,通过列表索引异常的is_valid超出范围我的代码很简单(我猜)#view.pyclassEntityUpdate(updateView):defpost(self 查看详情

Django 内联表单集将始终创建新对象而不是更新它们

】Django内联表单集将始终创建新对象而不是更新它们【英文标题】:Djangoinlineformsetwillalwayscreatenewobjectinsteadofupdatethem【发布时间】:2020-09-1702:11:24【问题描述】:我有两个模型First和Second,FK从Second到First。我为2类创建了一个表... 查看详情

Django内联表单集:内联外键与父实例主键不匹配

】Django内联表单集:内联外键与父实例主键不匹配【英文标题】:Djangoinlineformset:Theinlineforeignkeydidnotmatchtheparentinstanceprimarykey【发布时间】:2014-11-1508:13:07【问题描述】:似乎有很多关于这个主题的问题,但我找不到任何可以为... 查看详情

Django - 带有内联表单集的 UpdateView 试图保存重复记录?

】Django-带有内联表单集的UpdateView试图保存重复记录?【英文标题】:Django-UpdateViewwithinlineformsetstryingtosaveduplicaterecords?【发布时间】:2015-12-1102:07:16【问题描述】:我有一个Expense模型和一个ExpenseLineItem模型。就像典型的费用/发... 查看详情

将查询集传递给 django 内联表单中的外键字段

】将查询集传递给django内联表单中的外键字段【英文标题】:Passingquerysettoforeignkeyfieldindjangoinlineform【发布时间】:2013-11-2023:26:49【问题描述】:我遇到了一个小问题,我认为这很常见。这是描述的非常笼统的问题:classOwnable(mod... 查看详情

Django内联表单集通过另一个模型在多对多关系中过滤

】Django内联表单集通过另一个模型在多对多关系中过滤【英文标题】:Djangoinlineformsetfiltersinmanytomanyrelationshipthroughanothermodel【发布时间】:2013-04-2706:36:13【问题描述】:我有两个模型SchoolClass和Student,它们通过Enrollment模型具有... 查看详情

动态添加行到内联表单集未反映在 django 中 views.py 的发布请求中

】动态添加行到内联表单集未反映在django中views.py的发布请求中【英文标题】:dynamicallyaddedrowtoinlineformsetnotreflectedinthepostrequestinviews.pyindjango【发布时间】:2016-01-1413:45:43【问题描述】:我正在尝试使用帖子中提到的步骤将动态... 查看详情

如何检测表单集在模板中是不是有任何错误?

...错误?【发布时间】:2011-03-2016:48:22【问题描述】:感谢django中出色的内联模型表单集,我有一个非常高级的表单,其中包含4个内联表单集。在模板中,我在选项卡中显示每个表单集。一切都很顺利,但如果该选项卡中的表单... 查看详情

Django:如何显示内联表单集中每个模型对象的表单错误

】Django:如何显示内联表单集中每个模型对象的表单错误【英文标题】:Django:howtodisplayformerrorsforeachmodelobjectinainlineformset【发布时间】:2012-03-1505:49:38【问题描述】:我有一个作者模型和一个书籍模型。用户可以修改给定作者的... 查看详情

Django 中的内联表单验证

】Django中的内联表单验证【英文标题】:InlineFormValidationinDjango【发布时间】:2010-10-2700:53:15【问题描述】:我想在管理员更改表单中强制设置整个内联表单集。因此,在我当前的情况下,当我在发票表单(在管理员中)上点击... 查看详情

Django:如何更改内联表单集中的字段小部件

】Django:如何更改内联表单集中的字段小部件【英文标题】:Django:HowtochangeafieldwidgetinaInlineFormset【发布时间】:2012-08-1618:58:30【问题描述】:我是Django新手,我认为我在文档中遗漏了这一点。问题是在inline-formset中我没有声明一... 查看详情