Django 的内联表单

     2023-02-26     280

关键词:

【中文标题】Django 的内联表单【英文标题】:Django's Inline Forms 【发布时间】:2011-06-12 15:38:29 【问题描述】:

我正在尝试使用内联 formSet 创建记录,同时使用普通表单创建记录,其主键 内联 formSet 的外键都在同一个 HTML 页面上。

有意义吗?这就是我的意思:假设我有以下两个模型(显然不是真正的代码,但你明白了):

Class mainModel
    Primary Key (custom pk I create)
    field1
    field2

Class inlineFormModel
    autoPK
    field1 = ForeignKey(mainModel)
    field2

现在,我想为用户创建一个 HTML 页面,以便他们可以在创建多个 inlineFormModel 实例的同时创建一个 mainModel 实例。 mainModel 将是普通表单,而 inlineFormModel 将使用 inlineFormsets。问题是,当我保存所有表单时,没有 foreignKey 链接到内联 formSet 记录,因为它引用的模型仍在创建中(所有内容都保存在同一个视图中)。这有意义吗?

我将如何使用多个 secondModel 实例创建一个新的 mainModel 实例并使用相同的视图函数保存整个批次?

谢谢!

【问题讨论】:

【参考方案1】:

这是一种常见的情况,我不知道为什么文档中没有解决:

    initial_form = mainModelForm(request.POST)
    if initial_form.is_valid():
        form= initial_form.save(commit=False)
        my_formset = inline_formset(request.POST,instance=form)
        if my_formset.is_valid():
           form.save()
           my_formset.save()
.......  .........
# return codes here

【讨论】:

如果我有 3 个 inline_formset,它们都具有与外键相同的 initial_form 的 PK,这有关系吗? 所以在这种情况下,初始表单和表单集都呈现在同一个
中,以便两者的所有数据都在请求中提交和定义?

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

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

如何从 django 中的内联表单接收上传的文件?

】如何从django中的内联表单接收上传的文件?【英文标题】:Howtoreceiveuploadedfilefromtheinlinedformindjango?【发布时间】:2011-01-1203:50:56【问题描述】:我正在尝试在django管理面板中创建一个“酷”的图像上传界面。问题是我使用内联... 查看详情

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

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

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

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

Django内联表单集错误

】Django内联表单集错误【英文标题】:Djangoinlineformseterror【发布时间】:2012-06-2706:11:02【问题描述】:我正在尝试将内联表单集添加到表单中。这是重现错误的最少代码:models.pyclassFestival(Model):desc=TextField(max_length=1000)classFestivalA... 查看详情

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

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

最初在 django 内联表单集中设置不同的外键值

】最初在django内联表单集中设置不同的外键值【英文标题】:Setdifferentforeignkeyvalueindjangoinlineformsetinitially【发布时间】:2020-06-2510:18:11【问题描述】:我正在尝试使用django制作结果管理系统。为了存储主题标记,我使用的是django... 查看详情

单元测试 django 内联表单集

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

在 django admin 中为内联项目添加完整更改表单的链接?

】在djangoadmin中为内联项目添加完整更改表单的链接?【英文标题】:Addinglinkstofullchangeformsforinlineitemsindjangoadmin?【发布时间】:2011-02-2020:51:53【问题描述】:我有一个对象的标准管理员更改表单,以及用于ForeignKey关系的常用Stac... 查看详情

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

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

django 内联表单集的单选按钮

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

如何使用 django-extra-views 将请求传递到内联表单集中

】如何使用django-extra-views将请求传递到内联表单集中【英文标题】:Howtopassarequestintoaninlineformsetusingdjango-extra-views【发布时间】:2012-11-2718:15:03【问题描述】:我有一个带有内联表单集的表单。我想做的是当用户登陆表单时,将... 查看详情

Django Crispy 表单 - 更新视图的内联表单集“ManagementForm 数据”错误

】DjangoCrispy表单-更新视图的内联表单集“ManagementForm数据”错误【英文标题】:DjangoCrispyforms-inlineFormsets\'ManagementFormdata\'errorwithupdateview【发布时间】:2019-04-2202:53:17【问题描述】:晚上好,我在使用脆的表格inlineformset时遇到了... 查看详情

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

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

如果引发 ValidationError,删除链接会在 Django 管理内联表单集中消失

】如果引发ValidationError,删除链接会在Django管理内联表单集中消失【英文标题】:DeletelinkdisappearsinDjangoadmininlineformsetifValidationErrorraised【发布时间】:2011-11-2501:40:59【问题描述】:我有一个带有KeywordInline的表格。当我使用表单... 查看详情

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

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

无法将内联 CSS 提供给 Django 表单

】无法将内联CSS提供给Django表单【英文标题】:NotabletogiveinlineCSStoDjangoform【发布时间】:2015-09-2713:58:55【问题描述】:您好,我正在开发Django项目,但无法提供Inline课程。如何在类基视图表单中应用CSS类。这是我的代码:classBoo... 查看详情

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

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