Liz*_*eiy 3 python forms django jquery
目标: 通过按下按钮动态地向表单添加字段.提交后,将这些值存储在列表中的所有字段中.
(我已经查看了Stack Overflow上的其他问题,并试图找到一个基本的教程/解释如何执行此操作:动态地向表单添加字段)
我不确定我需要查找/研究什么.我知道它将涉及JavaScript,但它的Django方面,我不确定它将如何工作.
我为初学者创建了一个基本表单:
Models.py
from django.db import models
class SimpleForm(models.Model):
basic_field = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
Forms.py
from django import forms
from models import SimpleForm
class SimpleForm(forms.ModelForm):
class Meta:
model = SimpleForm
fields = ['basic_field']
Run Code Online (Sandbox Code Playgroud)
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})
Run Code Online (Sandbox Code Playgroud)
的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 %}
Run Code Online (Sandbox Code Playgroud)
尝试使用django-formsets.你可以从这个简洁的教程开始.
基本上,您需要做的是在views.py中从表单中创建一个formset.
from django.forms.formsets import formset_factory
CompoundFormset = formset_factory(SimpleForm,max_num=10,extra=1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5049 次 |
| 最近记录: |