类似于Wufoo的Web界面(可拖动元素,记住状态)

A web interface (draggable elements, remembering state) similar to Wufoo

本文关键字:元素 状态 拖动 Wufoo Web 界面 类似于      更新时间:2023-09-26

我的问题非常具体。我想有一个应用程序,我可以像在Wufoo上一样创建表单,具有易于使用的界面。这意味着可拖动的元素。

我的问题是,一旦使用更改表单元素的序号位置,我无法弄清楚如何将状态保存在数据库中。我可以做前端,并且有可用的库,但是如何将表单的特定实例保存在后端,以便下次使用登录时,顺序相同。

我很想在这个应用程序中使用 Django。所以,我能想到的基本类是:

class Form(models.Model):
  """...objects..."""

class TextField(models.Model):
  """...objects..."""
  #FK to Form()

class TitleArea(models.Model):
  """...objects..."""
  #FK to Form()

我还可以在 HTML 表单中的元素上拥有特定的 ID:

<input id="Field2" name="Field2" type="text"/>

他们(Wufoo)是怎么做到的?我的模型不正确吗?我知道这很幼稚。谢谢。

您可以使用

ModelForm通过模型实例创建表单。只需在用户完成编辑后保存模型,然后在再次为他们创建表单时,将该模型用作ModelForm(或表单集)的实例:

form = YourForm(instance=model_instance)

获胜的隐藏输入字段。

假设:

$("#submitForm").click(function() {
    // Check out the state of the union and change the hidden fields accordingly..
    // Something like:
    for (var i = 0; i < $(".orderedElements").length; i++) {
        $("#ordered-" + ((Number) i + 1)).attr('value', $(".orderedElements").eq(i).attr('id'));
    }
});

如果你抓住我的漂移。

嗯,一个好的起点是考虑一个用例。 如果我是用户,我需要什么来构建表单? 文本字段,当然 - 但还有什么? 表单会有标题吗? 网址? 到期日期?

当你绘制出这种信息时,你就可以开始在 Django 中构建你的模型了。