【发布时间】:2015-12-21 17:07:18
【问题描述】:
我有一份编辑 Django 应用程序的合同工作,而 Django 不是我要使用的主要框架,所以我对其中的模型有疑问。
我正在编辑的应用程序有一个每个用户都可以提交的表单,并且应用程序中的每个模型都是直接通过表单编辑的。
从这个角度来看,似乎每个模型都直接是一个表单对象,我没有看到任何可以用于自定义变量的模型字段。意思不是我可以用 JS 编辑的“字符串”,我只看到一个 TextField,其中唯一可以编辑的方法是将其直接包含在表单中。
如果我想要一些模型是自定义变量,这意味着我完全通过 JS 而不是表单提交来控制它们,我将如何在 Django 中做到这一点?
我知道我可以拥有一些我用 JS 操作的“隐藏”表单对象。但是这个解决方案听起来有点老套。有没有预期的方法可以解决这个问题?
谢谢!
(编辑:似乎大多数回复都不知道我指的是什么。基本上我想让客户端执行一些特殊的排序功能等,在这种情况下我需要一些额外的数据列表。但我不希望这些对用户可见,它们将由 js 专门更改。
关于 SColvin 的回应,我知道模型是数据库的表示,但从我正在处理的应用程序的设计方式来看,似乎模型的唯一使用方式是严格通过表单。
例如,每个“字符串”都是一个“TextField”,假设我们创建了一个名为“myField”的字符串,该字段的唯一用途是在模板中使用它,语法为 {{ form.myField| attr:"rows:4" }}.
在表单之外绝对没有使用此模型。你在应用程序中看到的每一个地方,都有一个表单对象。这就是为什么我的印象是编辑模型中的数据的主要方法。
在接受这个项目之前,我学习了 Django 教程,但不记得有任何方法可以在表单之外提交对模型的更改。
更具体地说,我想在这种情况下做什么:假设我想在我的模型文件中添加一个字符串,并且该字符串不会包含/编辑在表单中。它将对用户不可见。它将由一些 .js 函数在浏览器端进行修改,我希望在提交表单的其余部分时将其保存。这样做的预期方法是什么?
如果有人可以指导我获取有关如何执行此操作的文档或示例,我们将不胜感激! )
(Edit2:自第一次编辑后没有回复?不确定这篇文章是否没有显示给其他人。仍在寻找答案!)
【问题讨论】:
-
也许您可以澄清一下javascript中“自定义变量”的含义?我还认为您对“模型”(例如数据库表)和字段(例如数据库表中的单个列)感到困惑。
-
在这里查看答案,可能对您有所帮助:stackoverflow.com/a/34371264/5658350
-
我添加了更多信息,希望能更好地描述我的问题!
标签: javascript python django forms