【问题标题】:django form add new rows upon changing to editdjango 表单在更改为编辑时添加新行
【发布时间】:2016-08-24 17:06:56
【问题描述】:

这是我的用例:

我想首先使用 django_tables2 显示有关某事的信息,右上角有一个名为“编辑”的按钮,一旦用户点击“编辑”,在表格底部显示一个名为“添加新记录”,一旦用户点击该按钮,就会弹出一堆输入字段让用户为每个字段输入值,用户也可以继续点击“添加新记录”以继续添加新记录。

如何在 Django 中实现这一点? 我已经阅读了很多关于 stackoverflow 的示例,但没有找到适合这种特殊情况的任何内容。

非常感谢。

【问题讨论】:

  • 我假设您正在尝试在 Django 管理中添加内联表单。您通常需要编写一些 JavaScript 来执行此操作(您可以通过服务器请求来执行此操作,但它不会提供很好的用户体验)。当您使用 Django 管理员时,我会查看 inlines.js 文件,并将其用作起点。

标签: django django-forms


【解决方案1】:

让我们直接列出您想要做什么以及您需要这样做的要求。

  1. 您基本上想要切换隐藏和显示此网页的某些功能。这很容易通过包含“编辑”按钮、“添加新记录”按钮和弹出窗口(很可能在页面某处的 <div> 中)来完成。因此,“编辑”按钮将显示设置为内联、块等,而“添加新记录”和弹出窗口将显示“无”或者您希望隐藏它。

  2. 您已设置好内容并准备就绪,但现在您需要在单击“编辑”按钮时显示它。这通常是通过 Javascript 完成的。只需找到“添加新记录”按钮并切换可见性即可。

  3. 当您单击“添加”按钮时,您希望显示一个弹出窗口。这可以通过不同的库以多种方式完成。我个人的最爱之一是使用 jquery 的 blockUI。为什么?它不允许用户点击弹出窗口以外的任何地方,因此它是处理试图到达弹出窗口范围之外的用户的快速方法。

  4. 所以您已经添加了所有新行并且您已完成编辑。也许你有一个“保存”按钮或类似的东西,你可以点击。当你这样做时,你会想要将所有刚刚添加到数据库的新行推送到数据库中。 Django 可以很好地处理这个问题,您可以执行一些操作,例如在 POST 请求的一部分中包含新行,或者您希望实现此解决方案。

因此,您需要做一些工作才能启动此页面并使用您需要的确切功能运行,但希望这可以开始引导您朝着正确的方向前进。

【讨论】:

    猜你喜欢
    • 2010-12-23
    • 2011-05-02
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多