django - 使用“添加更多”功能到页面(模板)而不提交现有表单(和值)并最终提交
问题描述
我有一个 ModelForm,它向用户询问他的梦想。但我希望用户提供“添加更多”按钮,以便他们可以一次提交表单(表单字段),而不会在每次用户按下“添加更多”时重新加载页面而头疼
例如,如果用户完成了一个愿望,他/她可以再添加n个愿望,一旦他/她按下Submit
,表单应该将答案提交给数据库。
- 我怎样才能为此制作模型?会单
class Wish(model.Model):
user=models.Foreignkey(User, on_delete=models.CASCADE)
wishes= models.Charfield(max_length=1024)
以及来自该模型的表单来呈现表单????
用户可以在数据库中拥有任意数量的愿望,以便他/她可以通过选中/取消选中在任何时间点删除。
解决方案
据我从您的(非常模糊的)规格中可以看出,您的模型似乎大部分都可以 - 我可能会为其添加时间戳(创建日期)。
对于“添加更多”功能,这(部分)是表单集(带有一点 js)。
编辑:
ForeignKey 是合适的还是其他关系?因为一个用户可以有很多愿望。那么如何将它们全部连接起来呢?我的意思是两个用户可能会说出相同的愿望,所以会有 n 个该愿望的副本。好方法?
好吧,真的取决于你的规格。如果愿望对用户来说是“私人的”(没有其他用户可以看到它们),那么您的设计就可以了——您可能确实或多或少有相似的愿望,但每个用户的表述方式可能略有不同,所以您需要一些自然语言分析来发现那些“接近重复”。
现在,如果所有用户都可以看到现有的愿望,并且他们可以从现有的愿望中选择或创建自己的愿望,那么您可能需要两种关系:“作者”的一对多(外键),以及多对多选择它的用户(包括“作者”,这样您就可以轻松统计有多少用户有相同的愿望)。
推荐阅读
- reactjs - React 没有推送数组中的项目
- mysql - 如何修复mysql中的“正确的语法以在'附近使用'作为开始”错误?
- python - TypeError:“模块”对象不可调用 - 无法显示我的训练数据集散点图
- html - Keydown 在 onChange on 之前触发
- swift - 使用闭包将变量信息传递给第一个 VC 时遇到问题
- spring-cloud-gateway - Spring Cloud Gateway Redis 限速器不起作用
- java - 没有冲突时如何使用spring jpa将记录插入数据库
- reactjs - 添加换行符 javascript
- unreal-engine4 - 虚幻引擎蓝图:如何沿样条线移动演员?
- oracle - oracle客户端无法显示泰文