【发布时间】:2019-04-13 18:33:16
【问题描述】:
我正在开发一个现有系统,该系统有多个表单,用于填充 Django 上的一组模型,但它们彼此相关,并且被拆分为一些选项卡组件来填充。
我的目标是创建几个字段required 以及一种在系统上的任何位置获取该信息的方法,如果 X 表单已经完全填写了必填字段。表单上有验证,但只有当用户实际按下保存按钮时才会发生验证,如果他只是离开页面或者甚至没有进入该选项卡,系统会忽略它。
每个表单在完成后都会单独保存在数据库中,这很好,因为用户可能不会一次获得所有信息,但我需要一种提醒方式:
- 如果用户没有填写所有表单,让他知道管理员在填写之前不会对其进行验证。
- 一个标志,以便管理员知道用户还没有完成所有事情并且不会浪费时间。
我尝试在模型上创建一个自定义save 函数,如果某些值为not None,它将保存一个标志,但由于有很多外交关系,并且一些模型被填充在多个页面上这可能很难。
我现在正在尝试的另一件事是在主视图上获取表单实例,但由于某种原因,或者它返回了一个不完整的表单,或者 is_valid() 不适用于这些实例。
我还查看了FormWizard,但看起来它在每一步之后都没有保存在数据库中,并且在已经运行的系统上实现起来非常复杂。
欢迎任何提示。谢谢。
【问题讨论】:
-
如果您需要根据来自另一个对象的值在 for 中执行操作,请在呈现您的表单的视图中获取该对象并将
kwargs传递给您的表单,然后您可以使用在表单的__init__中进行修改。如果那是您想要的,则不需要修改保存。试一试,然后发布一些具体不符合您要求的代码。
标签: django forms validation flags