首页 > 解决方案 > 使用“添加更多”功能到页面(模板)而不提交现有表单(和值)并最终提交

问题描述

我有一个 ModelForm,它向用户询问他的梦想。但我希望用户提供“添加更多”按钮,以便他们可以一次提交表单(表单字段),而不会在每次用户按下“添加更多”时重新加载页面而头疼

例如,如果用户完成了一个愿望,他/她可以再添加n个愿望,一旦他/她按下Submit,表单应该将答案提交给数据库。

  1. 我怎样才能为此制作模型?会单
class Wish(model.Model):
    user=models.Foreignkey(User, on_delete=models.CASCADE)
    wishes= models.Charfield(max_length=1024)

以及来自该模型的表单来呈现表单????

用户可以在数据库中拥有任意数量的愿望,以便他/她可以通过选中/取消选中在任何时间点删除。

标签: djangodjango-formsdjango-templates

解决方案


据我从您的(非常模糊的)规格中可以看出,您的模型似乎大部分都可以 - 我可能会为其添加时间戳(创建日期)。

对于“添加更多”功能,这(部分)是表单集(带有一点 js)。

编辑:

ForeignKey 是合适的还是其他关系?因为一个用户可以有很多愿望。那么如何将它们全部连接起来呢?我的意思是两个用户可能会说出相同的愿望,所以会有 n 个该愿望的副本。好方法?

好吧,真的取决于你的规格。如果愿望对用户来说是“私人的”(没有其他用户可以看到它们),那么您的设计就可以了——您可能确实或多或少有相似的愿望,但每个用户的表述方式可能略有不同,所以您需要一些自然语言分析来发现那些“接近重复”。

现在,如果所有用户都可以看到现有的愿望,并且他们可以从现有的愿望中选择或创建自己的愿望,那么您可能需要两种关系:“作者”的一对多(外键),以及多对多选择它的用户(包括“作者”,这样您就可以轻松统计有多少用户有相同的愿望)。


推荐阅读