django 脆皮形式 内联表单

2024-01-04

我正在尝试采用脆形式和引导程序,并尽可能多地使用它们的功能,而不是一遍又一遍地发明一些东西。

有没有一种方法可以像 django-admin 表单那样使用 Cripy-forms/bootstrap 来实现内联表单功能?

这是一个例子:

class NewProjectForm(forms.Form):
    name = forms.CharField(required=True, label=_(u'Название проекта'), widget=forms.TextInput(attrs={'class':'input-block-level'}))
    group = forms.ModelChoiceField(required=False, queryset=Group.objects.all(), label=_(u'Группа проектов'), widget=forms.Select(attrs={'class':'input-block-level'}))
    description = forms.CharField(required=False, label=_(u'Описание проекта'), widget=forms.Textarea(attrs={'class':'input-block-level'}))

    class Meta:
        model = Project
        fields = ('name','description','group')

    def __init__(self, *args, **kwargs):
        self.helper = FormHelper()
        self.helper.form_class = 'horizontal-form'
        self.helper.form_action = 'submit_new_project'
        self.helper.layout = Layout(
            Field('name', css_class='input-block-level'),
            Field('group', css_class='input-block-level'),
            Field('description',css_class='input-block-level'),
        )
        self.helper.add_input(Submit('submit',_(u'Создать проект')))
        self.helper.add_input(Submit('cancel',_(u'Я передумал')))
        super(NewProjectForm, self).__init__(*args, **kwargs)

它将显示一个不错的形式:

我如何添加一个基本上代表这个模型的表单:

class Link(models.Model):
    name = models.CharField(max_length=255, blank=False, null=False, verbose_name=_(u'Название'))
    url = models.URLField(blank=False, null=False, verbose_name=_(u'Ссылка'))
    project = models.ForeignKey('Project')

因此,将会有一个项目和名称/url 链接以及添加许多链接的方法,就像在 django-admin 中完成的相同操作一样,您可以在其中添加额外的“行”以及与主模型相关的数据。在下面的屏幕截图中,您可以填写“问题”对象的数据,在下面的屏幕截图中,您可以为 QuestionOption 对象添加数据 - 您可以单击“+”图标添加任意数量的 QuestionOptions。

我不是在寻找一种从模型自动生成表单的方法(这很好,但不是最重要的) - 有没有一种方法可以构建一个表单,让您像 django-admin 那样添加“行”数据?


您所指的内联表单在 Django 中称为表单集。如果您想了解有关表单集的更多信息,可以在Django 表单文档 https://docs.djangoproject.com/en/dev/topics/forms/formsets/.

Crispy 支持渲染内联表单集,如中所述“渲染表单集”部分 http://django-crispy-forms.readthedocs.org/en/d-0/tags.html#rendering-formsets

请注意,表单集默认显示 3 个额外的内联表单,允许您再添加三个对象。保存后,您将再次获得三个额外的内联表单集以添加更多内容。

如果您想要像 Django Admin 中那样的“添加更多”按钮,则需要使用一些 Javascript 来动态添加这些行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django 脆皮形式 内联表单 的相关文章

随机推荐

  • 如何使命名路由出口与 loadChildren 一起工作?

    我创建了两个关于路由的 loadChildren 和出口导航问题的插件 由于某种原因 加载的子模块中具有空的基本路径不适用于出口导航 In this https plnkr co edit ps0ZiD3mHTte227Ws69T p pr
  • Java HashMap 检测冲突

    有没有办法检测 Java Hash map 中的冲突 任何人都可以指出某些可能发生大量碰撞的情况吗 当然 如果你重写一个对象的哈希码并简单地返回一个常量值 那么肯定会发生冲突 我不是在谈论这个 我想知道除了前面提到的之外 在什么情况下会发生
  • WebBrowser 控件 - 安装 IE 11 后页面呈现错误

    我对 Winforms NET 类 WebBrowser 有问题安装后Internet Explorer 11 预览版 当我调用我的网页时 它看起来像是禁用了 javascript If your WebBrowser基于应用程序和您的网页
  • 将文件上传到 Azure 存储会导致错误:此流不支持超时

    我有一个表单 其中包含上传到 Azure 存储的文件 这是调用 ToStream 方法的地方 Image img Image FromStream file InputStream true true if img Height heigh
  • docker-compose:定义绑定挂载和托管挂载的挂载

    我正在使用 docker compose 来定义我的服务 在docker中 docker卷有两个概念 首先是关于bind mount 挂载在主机存储上 docker run d name web app v HOST location co
  • jQuery UI datepicker 将焦点放在输入上,而无需在 IE 中再次加载日历?

    我知道如果用鼠标选择日期 jQuery UI 日期选择器会失去焦点 我希望能够将焦点集中在该输入字段上 所以我做了这样的事情 patientDob live click function patientDob datepicker onSe
  • 在numpy数组中查找连续的

    如何找到连续的数量1以下 numpy 数组的每一行中的 s 或任何其他值 我需要一个纯 numpy 解决方案 array 0 1 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 2 0 0 1 1 1 0 0 0 4 1 0
  • Google OR 工具:如何评估复杂或多级布尔约束

    Set up 我使用 google OR 工具作为约束编程求解器 from ortools sat python import cp model 我定义了以下 BoolVars model cp model CpModel a model
  • IntelliJ 和 JSP/JSTL 无法解析 tomcat7 中 JSTL 的 taglib [重复]

    这个问题在这里已经有答案了 首先 我的 JSTl 代码可以在我的服务器上运行 因为我在 tomcat7 的 Lib 文件夹中有正确的 Jar 文件 这实际上只是一个 IDEA 问题 我的问题归结为我将相同的 jar 文件放在 Intelli
  • 隐藏盒子阴影的部分

    免责声明 我已经看到以下问题 尽管它们的情况非常相似 但它们的解决方案并不适用于我 在除一侧以外的所有面上创建 CSS3 框阴影 https stackoverflow com questions 1429605 css3 box shad
  • 如何通过 Terraform 将 Iceberg 表部署到 AWS

    尝试确定将一些 Iceberg 表部署到我们的 AWS 环境中的最佳方法 有人通过 Terraform 取得成功吗 我有以下配置 但当我查询我创建的表时 Athena 抱怨缺少元数据位置 或者将永远旋转 如果有更好的方法可以自动化部署 请告
  • 如何知道 uitableview 是否有选定的单元格

    我正在开发一个应用程序 有时我有几个 uitableview 我想知道委托方法之外的操作 例如表视图是否有选定的单元格以及是哪个单元格 我尝试使用 NSIndexPath indexPathForSelectedRow但它不起作用 因为如果
  • 通过选项选择更新 SVG

    我正在尝试获取 SVG 中的文本元素以通过选项更改进行更新 搜索后 我已经能够到达 在控制台中 在页面初始加载期间以及选项更改时看到选项更改的位置 但我未能成功更改数字 任何帮助 将不胜感激
  • VIM 中更好的自动完成功能

    All 我使用 vim 已经有一段时间了 并且喜欢它的一切 我真正怀念 RubyMine 这样的 IDE 中只有一件事 那就是高级自动完成功能 作为参考 这是我的标准 VIM 设置 https github com wrwright vim
  • 如何在 spring mvc 中提供静态内容?

    我在当前的项目中使用 spring mvc 框架 ROOT文件夹有很多包含html jsp css js等的web文件夹 我的spring mvc配置如下
  • UIScrollView 如何更改框架而不更改边界? UIScrollView 是如何工作的?

    我理解框架和边界之间的区别 我认为 边界是视图的本地坐标系 而框架是超级视图 然而 对于滚动视图 我有点困惑 当我在 UIScrollView 中有一个 UIImageView 并将其放大时 似乎框架变大 宽度和高度 也会增加相应 UIIm
  • 在 google 地图中查找给定点 5 公里半径范围内的位置

    嘿 我只是想收集谷歌地图数据库中给定点 5 公里半径以下的位置 我会将它们存储在数据库中以供以后处理 这可以完成吗 谢谢 如何获取所需圆内点的经度和纬度 您可以使用地点搜索 http code google com intl fr apis
  • 有没有办法通过作业名称获取 Quartz 中的作业密钥

    现在我正在寻找在 Quartz 库中通过作业名称获取作业密钥的功能 我看到Scheduler有方法通过组名称获取作业密钥GroupMatcher
  • Android 中是否有 API 支持以编程方式进行电话会议?

    我想通过从我的应用程序中选择一些联系人来进行电话会议 可以吗 电话会议中的设备数量是否有限制 有没有 Android SDK 支持 任何版本都适合我吗 请提供一些意见 提前致谢 您无法使用智能手机管理会议 您需要一个可以为您完成此操作的中间
  • django 脆皮形式 内联表单

    我正在尝试采用脆形式和引导程序 并尽可能多地使用它们的功能 而不是一遍又一遍地发明一些东西 有没有一种方法可以像 django admin 表单那样使用 Cripy forms bootstrap 来实现内联表单功能 这是一个例子 clas