Mar*_*ark 12 django dynamic django-forms
我需要的其中一种形式是简单字段(比如"Department","Building"和"RoomNumber")的组合,以及动态生成的字段对(比如"Name"和"Email").理想情况下,编辑简单字段的内容以及添加/删除动态字段对将在单个表单上完成.
代码方面,我想知道是否尝试将Formset(具有两个动态字段的表单)作为普通形式的字段嵌入是一种明智的方法,或者是否有另一种最佳实践来实现我想要实现的目标.
非常感谢有关这些问题的任何建议,
sup*_*cuo 16
我不确定你需要"将Formset作为一个字段嵌入"的想法来自哪里; 这听起来像是模板集的标准用法.
例如(对您的模型做出一系列假设):
class OfficeForm(forms.Form):
department = forms.ModelChoiceField(...
room_number = forms.IntegerField(...
class StaffForm(forms.Form):
name = forms.CharField(max_length=...
email = forms.EmailField(...
from django.forms.formsets import formset_factory
StaffFormSet = formset_factory(StaffForm)
Run Code Online (Sandbox Code Playgroud)
然后,为了您的观点:
def add_office(request):
if request.method == 'POST':
form = OfficeForm(request.POST)
formset = StaffFormSet(request.POST)
if form.is_valid() && formset.is_valid():
# process form data
# redirect to success page
else:
form = OfficeForm()
formset = StaffFormSet()
# render the form template with `form` and `formset` in the context dict
Run Code Online (Sandbox Code Playgroud)
可能的改进:
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
6529 次 |
| 最近记录: |