Django - 跨多个视图形成并保存进度

2024-02-10

我正在开发一个 Django 项目,为了使表单体验更加流畅,我想将 ModelForm 分布在几个页面上。如果登录的用户可以在表单中保存进度而不实际发布内容(在这种情况下,JobApplication用户可以返回填写信息,而无需实际发送应用程序)。

目前我已经查看了其他答案,例如this one https://stackoverflow.com/questions/14901680/how-to-do-a-multi-step-form-in-django;但这仅向我展示了如何利用缓存在表单所在的视图之间存储信息。

Models.py(模型、表单和视图已被简化以提高可读性):

class JobApplication(models.Model):
    job = models.ForeignKey(JobPost,on_delete=models.SET_NULL,...)
    user = models.ForeignKey(AUTH_USER_MODEL,...)
    details = models.CharField(max_length=300)
    skills = models.CharField(max_length=300)
    feedback = models.CharField(max_length=300)
    #... [insert more fields] ...

表格.py:

class Application(forms.ModelForm):
    details = forms.CharField() # To go in page 1 of the form process
    skills = forms.CharField() # To go in page 2
    feedback = forms.CharField() # To go in page 3
    class Meta:
        model = JobApplication
        fields = ['details','skills','feedback']

视图.py:

from . import forms
def view1(request):
    form = forms.Application()
    if request.method == 'POST':
        form = forms.Application(data=request.POST)
        ... some logic here which I am not sure of ...
    return render(request, 'view1.html', {})

def view2(request):
    form = forms.Application()
    if request.method == 'POST':
        form = forms.Application(data=request.POST)
        ...
    return render(request, 'view2.html', {})

def view3(request):
    form = forms.Application()
    if request.method == 'POST':
        form = forms.Application(data=request.POST)
        ...
    return render(request, 'view3.html', {})

请注意,我很乐意编辑我的表单或模型以实现您可能在工作网站上看到的多页保存进度效果。

让我知道是否还有更多有用的代码可以添加,因为我不太确定还需要什么。

Thanks!


  1. 我的应用程序中有一个类似的用例,我所做的就是创建的 模型的多种形式和控制的中央视图 形式的进展。

    该视图有一个必须通过其传播的表单列表

    GET : /form/<index> => form/0
    POST : Save data to the form
    
  2. 最初,表单没有初始数据,对于索引 > 0 初始数据将是之前保存的模型对象

  3. 当用户单击“下一步”时,URL 索引计数器会增加,减少 这是上一个,不要在跳过时保存任何内容

这是它的外观要点。https://gist.github.com/bhavaniravi/b784c57ae9d24fce359ae44e2e90b8e3 https://gist.github.com/bhavaniravi/b784c57ae9d24fce359ae44e2e90b8e3

我不知道这是否是有史以来最好的优化方法,但这就是我所做的。任何有关改进的建议都是非常受欢迎的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django - 跨多个视图形成并保存进度 的相关文章

随机推荐

  • MSTest 测试方法依赖注入

    我正在使用 DI 容器 并且想要使用从容器解析的实例进行 MSTest VS 2010 单元测试 我想将这些实例注入到我的 TestMethod 或至少是我的 TestClass 中 这可能吗 现在我的 TestMethods 直接调用co
  • 根据项目的特殊属性从列表中删除项目[重复]

    这个问题在这里已经有答案了 我有一个由我定义的项目组成的列表 每个项目都有一个属性 name t item1 item2 我想根据其属性从 t 列表中删除项目 name 如remove 或pop 方法 也许我可以做类似的事情 t remov
  • C# 从文件序列化数据契约

    我有一个 Xml 消息列表 特别是我记录到文件中的 DataContract 消息 我正在尝试将它们从文件中一一反序列化 我不想立即将整个文件读入内存 因为我预计它会很大 我有这个序列化的实现并且有效 我通过使用 FileStream 进行
  • ARCORE:通过单击此可渲染对象来删除特定的可渲染对象

    我正在开发一个使用 ARCore 的 Sceneform 的项目 我基于ARCore提供的HelloSceneform示例进行开发 我想要做的是通过点击添加一个可渲染对象 然后当我单击屏幕上的特定可渲染对象时将其删除 我已经尝试了方法 An
  • 在原生 Javascript 中查找具有类的元素的索引

    有没有办法获取类名的索引 即 类 className 的第三个元素将是 3 而不使用 jQ 我不了解jQ 而且我现在没有时间学习它 而且我不想在我的代码中包含至少一些我不理解的代码 Thanks 顺便说一句 我使用了 jQ 而不是拼写出来
  • 由 Scala 宏生成时,依赖类型似乎“不起作用”

    为这个挥手的标题道歉 我不完全确定如何简洁地表达这个问题 因为我以前从未遇到过这样的事情 背景资料 我有以下特征 其中类型U是为了举行无形可扩展记录 https github com milessabin shapeless wiki Fe
  • 我可以使用 memcpy 写入多个相邻的标准布局子对象吗?

    免责声明 这是试图深入研究一个更大的问题 所以请不要纠结于这个例子在实践中是否有意义 而且 是的 如果你想的话copy对象 请使用 提供复制构造函数 但请注意 即使该示例也不会复制整个对象 它会尝试将一些内存复制到一些相邻的 Q 2 整数上
  • 如何在 EF Code First 中对表进行单一化?

    在命名数据库表时 我更喜欢使用单数名词 然而 在 EF 代码优先中 生成的表始终是复数 我的 DbSet 是复数的 我相信这是 EF 生成名称的地方 但我不想将这些名称单数化 因为我相信在代码中使用复数名称更实用 我也尝试过覆盖该设置但无济
  • 如何在 JavaScript 中将数组的每个成员乘以标量?

    例如 我如何实现以下目标无需迭代数组 var a 1 2 3 5 a should equal 5 10 15 Array map https developer mozilla org en JavaScript Reference Gl
  • 异步 useState 导致层次结构中未定义的元素

    设置 场景 我正在使用 twitter api 来获取数据并使用 twitter 卡将其呈现反应本机社交 https github com PierreCapo react native socials 推文数据 JSON 通过我的后端存储
  • 尝试将多个函数聚合到新列时出现意外的 KeyError Pandas

    我看过以下问题 将多个函数应用于多个 groupby 列 https stackoverflow com questions 14529838 apply multiple functions to multiple groupby col
  • 单击 div 时打开文件浏览器做出反应

    我的反应组件 import React PropTypes Component from react class Content extends Component handleClick e console log Hellooww wo
  • 将时间字符串转换为日期对象[重复]

    这个问题在这里已经有答案了 我正在使用时间选择器 它需要一个日期对象 从数据库中我得到一个像 17 00 00 这样的时间字符串 如何将 17 00 00 这样的时间字符串转换为日期对象 Edit我已经尝试过 Mike C Alex K 建
  • 如何将颜色与透明度混合?

    我希望能够混合两个或多个颜色对象 假设我从半透明的红色开始 var 红色 Color FromArgb 140 255 0 0 然后我想将半透明的绿色混合到其中 var green Color FromArgb 140 0 255 0 我遇
  • Select2 - 过滤特殊字符

    我的 select2 插件有问题 当我使用过滤器并输入 m ka 时 它会找到所有带有 m ka 和 maka 单词的选项 是否可以自定义此脚本以仅查找 m ka 单词 在此预览 https i stack imgur com Cd6Wf
  • 项目欧拉问题 14 的进一步优化(Collat​​z 序列)

    当我第一次开始尝试这个问题时 我的代码需要一分多钟才能完成运行并给我答案 我已经尝试过动态编程并存储以前的数字 因此不必多次运行相同的数字 我也尝试过压缩 n3 1 和 n 2 合并成一行 n3 1 但这两者都只能将我的代码缩短到 10 秒
  • 在可移植类库中包含 XPathSelectElement

    我该如何使用XPathSelectElement在便携式类库中 当我尝试包括System Xml XPath在项目中进行汇编时 出现以下错误 类型 System Xml Linq XElement 是在未引用的程序集中定义的 您必须添加对程
  • Scalaquery:按“任意”条件组合进行过滤

    我想加入任意长度的过滤器列表or 如果列表是固定长度的 它看起来像这样 query filter filters 0 filters 1 filter n 连接过滤器and会很容易 for filter filters query quer
  • 如何让openjdk 11支持椭圆曲线密码算法?

    尝试在 java 应用程序中调用 https URL 时出现错误 javax net ssl SSLException 无法生成 ECDH 密钥对 它在 Oracle JDK 1 8 0 152 上运行良好 当我们迁移到 Openjdk 1
  • Django - 跨多个视图形成并保存进度

    我正在开发一个 Django 项目 为了使表单体验更加流畅 我想将 ModelForm 分布在几个页面上 如果登录的用户可以在表单中保存进度而不实际发布内容 在这种情况下 JobApplication用户可以返回填写信息 而无需实际发送应用