Django通过JS而不是表单提交来保存模型



我有一份编辑Django应用程序的合同工作,Django不是我要使用的主要框架,所以我对其中的模型有疑问。

我正在编辑的应用程序有一个每个用户都可以提交的表单,应用程序中的每个模型都是通过该表单直接编辑的

从这个角度来看,似乎每个模型都直接是一个表单对象,我看不到任何可以用于自定义变量的模型字段。意思不是";字符串";我可以用JS编辑,我只看到一个TextField,在那里,编辑它的唯一方法是直接将它包含在表单上。

如果我想拥有一些自定义变量的模型,这意味着我完全通过JS而不是表单提交来控制它们,那么我将如何在Django中做到这一点?

例如,我知道我可以吃一些";隐藏的";表单对象,我用JS操作。但这个解决方案听起来有点古怪。我有没有打算这样做?

谢谢!

编辑:似乎大多数响应都不知道我指的是什么。基本上,我想允许客户端执行一些特殊的排序功能等,在这种情况下,我需要一些额外的数据列表。但我不希望这些对用户可见,它们将由js.独家更改

关于SColvin的回应,我知道模型是数据库的一种表示,但从我正在开发的应用程序的设计方式来看,似乎使用模型的唯一方式是严格通过表单。

例如;字符串";是";TextField";,假设我们制作了一个名为";myField";,该字段的唯一用途是在语法为{{form.myField|attr:"rows:4"}的模板中使用它。

除了形式之外,这个模型绝对没有任何用处。在应用程序中看到它的每个地方,都有一个表单对象。这就是为什么我认为这是编辑模型中数据的主要方法。

在接受这个项目之前,我做了Django教程,但不记得有任何方法可以在表单之外提交对模型的更改。

因此,更具体地说,在这种情况下,我想做的是:假设我想在模型文件中添加一个字符串,但这个字符串不会包含/编辑在表单中。它对用户来说是不可见的。它将被一些.js函数在浏览器端修改,我希望在提交表单的其余部分时将其保存起来。这样做的目的是什么?

如果有人能指导我如何做到这一点的文档或示例,我们将不胜感激!)

Edit2:自第一次编辑以来没有任何回应?不确定这篇文章是否没有为其他人出现。仍在寻找答案!)

正如SColvin所指出的,这里存在一些术语混淆;您所说的"自定义变量"是什么意思,以及这些变量与模型之间的关系还不清楚。

然而,你的主要困惑似乎是在表格上。绝对不需要使用它们:它们只是更新模型的一种方法。直接在代码中编辑模型总是可能的,如果你愿意,其中的数据当然可以来自Javascript。本教程很好地介绍了如何在不使用表单的情况下从代码中更新模型

如果你通过JS做了很多工作,你可能想研究Django Rest Framework,它简化了将Django模型数据转换为JSON和从JSON转换为JSON的过程,以便在客户端代码中使用。尽管DRF没有做任何你在自己的代码中无法手动完成的事情,但所有这些都没有使用表单。

最新更新