Bra*_*ant 12 python django django-forms
我试图自动创建这样的东西:
<input type='text' name='asdf[]' />
<input type='text' name='asdf[]' />
<input type='text' name='asdf[]' />
Run Code Online (Sandbox Code Playgroud)
通过循环范围内的范围.我一直在尝试这样的事情,还有其他一些变化:
# in a model class
for i in range(1, prim+1):
self.fields['asdf'] = forms.CharField(label=i)
# in the template
<form action='#' method='post'>
{{form.as_p}}
</form>
Run Code Online (Sandbox Code Playgroud)
但我没有运气.
如何自动化输入数组?
**编辑**为了澄清,最终我需要能够访问模板中的字段,如下所示:
{% for input in form.fields.asdf %}
{{input}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
那将有希望得到我上面显示的原始输入列表...
Jacob Kaplan-Moss(Django的合着者)最近发表了一篇关于处理动态表单的精彩文章,它应该以一种优先的方式解决你的问题:http: //jacobian.org/writing/dynamic-form-generation/
他使用的方法与Felix建议的方法相同,但值得阅读整篇文章以更好地掌握这个概念.
使用这种asdf[]技术是草率的,因为那时你必须处理订购.这也不是标准做法.
编辑:
要处理需要检测何时触及这些动态字段的情况:
{% for input in form.fields %}
{% ifequal input.label 'asdf' %}
{{ forloop.counter }}: {{input}}<br />
{% endifequal %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
看起来我可以通过将表单分解为多个表单集来完成我需要做的事情......
http://docs.djangoproject.com/en/dev/topics/forms/formsets/#topics-forms-formsets
然后,我应该能够从模板中单独访问每个表单集,将它们全部包装成一个
| 归档时间: |
|
| 查看次数: |
14587 次 |
| 最近记录: |