jquery - Django - 添加字段以动态形成

标签 jquery python django forms

目标: 通过按下按钮动态地向表单添加字段。提交后,将所有字段的值存储在列表中。

(我已经查看了 Stack Overflow 上的其他问题,并试图找到一个基本教程/解释如何做到这一点:dynamically add field to a form)

我不确定我需要查找/研究什么。我知道它将涉及 JavaScript,但我不确定它是如何工作的 Django 方面。

我已经为初学者创建了一个基本表格:

enter image description here

模型.py

from django.db import models

class SimpleForm(models.Model):
    basic_field = models.CharField(max_length=200)

Forms.py

from django import forms
from models import SimpleForm

class SimpleForm(forms.ModelForm):

class Meta:
    model = SimpleForm
    fields = ['basic_field']

Views.py

from django.shortcuts import render
from forms import SimpleForm

def index(request):
    if request.method == "POST":
        # For loop to iterate over dynamically created fields
        # Store values in list
    else:
        form = SimpleForm()
    return render(request, "index.html", {'form':form})

Index.html

{% block content %}
    <h1>Simple Form</h1>
    <form method="POST" class="post-form">{% csrf_token %}
        {{ form.as_p }}
        <button type="button" class="btn-default">Add Another Field</button>
        <button type="submit" class="btn-default">Submit</button>
    </form>
{% endblock %}

最佳答案

尝试使用 django-formsets .你可以从这个整洁的 tutorial 开始.

基本上,您需要做的是从您的 views.py 中的表单创建一个表单集。

    from django.forms.formsets import formset_factory
    CompoundFormset = formset_factory(SimpleForm,max_num=10,extra=1)

关于jquery - Django - 添加字段以动态形成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32194316/

相关文章:

python - 从 subprocess.run 运行带有 "./"的二进制文件

javascript - 在 django 模板中嵌入 javascript 代码

python - Django:服务器启动时创建对象并在 View 中使用它

javascript - 菜单打开时如何在外部点击时隐藏菜单

javascript - jquery 代码确认密码出现问题

jquery - 具有相对位置句柄显示/隐藏的水平滑动面板 - jQuery

python - 如何从列表中搜索值到 pandas 数据框中?其中列表包含多个字符串值

javascript - 滚动负责的背景图像覆盖尺寸 : is it possible?

python - Django 获取随机对象

django - 如何在我的所有模型上自动生成 __unicode__ 方法?