Django-在视图中处理多个表单请求

问题描述

我有一个模型(称为模块),管理员可以在其中添加新模块。在模板中,用户可以将模块移动到我使用gridstack.js处理的不同位置。我有一个保存按钮,以便用户可以保存布局,但是会出现错误 views.py仅处理一个请求 我所做的就是向views.py

添加了多种形式
def index(request):
    modules = Module.objects.filter(active=True)
    module1 = Module.objects.get(id=1)
    module2 = Module.objects.get(id=2)
    form = Module_form(instance=module1)
    form2 = Module_form(instance=module2)
    if request.method == 'POST':
        form = Module_form(request.POST,instance=module1)
        form2 = Module_form(request.POST,instance=module2)
        if form.is_valid() and form2.is_valid():
            form.save()
            form2.save()


    return render(request,'main/index.html',{
        'modules': modules,'form': form,'form2': form2,})

如果我提交表单,则第一个表单将获得与form2相同的值。如何在一个视图中发送多个请求?结果应如下所示:

enter image description here

index.html

...
  <form action="" method="POST">
    {% csrf_token %}
    {{ form }}
    <br>
    <br>
    {{ form2 }}
    <div class="grid-stack">
      {% for data in modules %}
      <div class="grid-stack-item" data-gs-x="{{ data.x }}" data-gs-y="{{ data.y }}"
        data-gs-min-width="{{ data.min_width}}" data-gs-min-height="{{ data.min_height}}" data-gs-width="{{ data.width }}" data-gs-height="{{ data.height }}" id="{{ data.id }}">
        <div class="grid-stack-item-content">{{ data.content|safe }}</div>
      </div>
      {% endfor %}
    </div>
    <input onclick="saveData()" type="submit" value="Einstellungen">
  </form>

Javascript函数saveData()正确格式化了数据,如果我只运行该函数,则可以在表单输入中看到正确的值。这不是问题。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)