- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 Django 的新用户,我使用以下代码生成表单
class GetMachine(forms.Form):
Machine_Name = forms.CharField(max_length=20)
Number_of_lines = forms.IntegerField(max_value=10)
class GetLine(forms.Form):
Line_name = forms.CharField(max_length=20)
def install(request):
if request.method == 'POST':
form = GetMachine(request.POST)
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
form = GetLine()
return render_to_response('install.html', { 'form': form, })
else:
form = GetMachine() # An unbound form
return render_to_response('install.html', { 'form': form, })
如何修改上面的代码,使“Number_of_lines”用于创建 n 个“Line_Name”表单域。
例如,如果 Number_of_lines 的值为 2,我想再次要求用户输入两行的名称作为
1 号线名称:
2号线名称:
最佳答案
从 POST 数据中获取 number_of_lines 后,您可以将该数字作为“额外”参数传递给表单集工厂。
from django.forms.formsets import formset_factory
...
form = GetMachine(request.POST)
if form.is_valid(): # All validation rules pass
number_of_lines = form.cleaned_data['Number_of_lines']
GetLineFormSet = formset_factory(GetLine, extra=number_of_lines)
formset = GetLineFormset()
form = GetLine()
...
提示:您还可以使用 max_num 参数将行数保持在合理的限制范围内:
GetLineFormSet = formset_factory(GetLine, extra=number_of_lines, max_num=10)
关于python - 在 Django 中使用 formset_factory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14399435/
我在从 django 导入 formset_factory 时遇到问题。 这是回溯: from django.forms import formset_factory Environment: Req
当我检查 formset_factory 验证并从 formset 获取字段值时,它只从 formset 返回一个字段值。但是我在我的代码中找不到任何问题。请帮我解决问题。 我的form.py: cl
我是 Django 的新用户,我使用以下代码生成表单 class GetMachine(forms.Form): Machine_Name = forms.CharField(max_leng
Django 中的表单可能很复杂。 Formsets 会让你想退出 Django。我就在那个时候。 有哪些不同的用例以及使用哪个(哪些)用例的注意事项? 我正在寻找关于何时使用每个工厂的更好指导,因为
模型: class AssociatedFileCourse(models.Model) file_original = models.FileField(upload_to = 'assets/
我是一名优秀的程序员,十分优秀!