【问题标题】:Can a user create forms in django?用户可以在 django 中创建表单吗?
【发布时间】:2018-09-25 07:29:21
【问题描述】:

我正式陷入困境。我正在为工作目的构建一个 django 应用程序。员工用户应该能够使用 django 管理员创建表单。表格应该能够以可变标签显示在网站上。检查 html setup 的链接。输入上方的标签应该可以从 django 管理员中针对每个特定表单进行编辑。

我还希望用户能够创建任意数量的字段。因此,例如在链接中的图像中,有 8 个输入字段。有没有办法用 django 表单/模型来做到这一点?我查看了 django forms-builder 扩展。基本上我想要能够按下“添加另一个字段”的功能,但与 forms-builder 包附带的所有其他内容一样。

表单应存储在附加到该字段相应标签的数据库中。

我创建了自己的抽象用户,一个用户应该只能填写一次特定的表格。但应该能够填写不同的表格。

一个表单应该可以被多个用户填写。

非常感谢每一个想法!

【问题讨论】:

    标签: python django django-models django-forms django-views


    【解决方案1】:

    django-forms-builder 实际上可能非常适合您的情况。该模块提供了从管理界面修改表单和添加字段的功能。

    关于允许特定用户仅提交一次表单的约束,至少有两种方法可以做到:

    第一个也是显而易见的方法是在向用户显示实际表单之前简单地检查视图中的条件。您可以使用 request.user 实例检查他的用户名是否已经在此表单的回复者列表中。

    另一种可能的解决方案是使用 django-forms-builder 模块提供的信号。它们允许您在表单数据有效或无效时捕获表单提交时刻。您可以在那里添加您的自定义逻辑,例如如果用户之前已经提交过此表单,则发出警报。

    【讨论】:

    • 感谢您对此的看法。我想您对模块的看法是正确的。您将如何编辑字段以使它们适合应用程序?如前所述,我真的只需要它附带的少量功能。
    • 根据 django-forms-builder 文档,从管理员添加的每个表单都有自己的 url。但是,如果您不需要,您可以简单地不在项目的 url 中包含 django-forms-builder,而是使用您自己的逻辑创建自定义视图。您可以使用{% render_built_form form_instance %} 模板标签来在您的模板中呈现特定的表单。
    猜你喜欢
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2020-12-18
    • 1970-01-01
    • 2011-09-26
    • 2021-09-15
    相关资源
    最近更新 更多