Jquery 如何将行动态添加到表单?(Django)
我有一个连接到窗体的模型。您可以假设它是一个具有1个属性的非常简单的模型Jquery 如何将行动态添加到表单?(Django),jquery,html,django,Jquery,Html,Django,我有一个连接到窗体的模型。您可以假设它是一个具有1个属性的非常简单的模型 class Past_Location(models.Model): location = models.CharField(max_length=100) 我想让用户能够通过按钮向表单中添加更多行。因此,我将此模型反映到一个表单集: LocationFormSet = forms.modelformset_factory( Past_Location, fields='__all__',
class Past_Location(models.Model):
location = models.CharField(max_length=100)
我想让用户能够通过按钮向表单中添加更多行。因此,我将此模型反映到一个表单集:
LocationFormSet = forms.modelformset_factory(
Past_Location,
fields='__all__',
extra=1,
widgets={
'location': forms.TextInput(
attrs={
'class': 'form-control',
'placeholder': 'Enter Location Name here'
}
)
}
)
下面是添加更多行的按钮创建
<div class="input-group">
{{ form.name }}
<div class="input-group-append">
<input type="text" name="name" value="">
<button id="add" type="button" class="btn btn-success add-form-row">+</button>
</div>
</div>
我认为“AddFormRow”类足以动态添加更多行,但事实并非如此。因此,我想遵循一些示例并使用jquery添加更多行。然而,由于我的表单是从模型中反映出来的,所以我不知道如何通过jquery访问和添加新行。我想发布一个MVP,但是这个项目太复杂,需要的文件太多。所以我想知道通过jquery与modelForms交互的标准方式是什么?前端是JS的工作,而不是Django。但是我认为,您可以使用view.py中的变量名从jquery访问。
def form_name_view(request):
form = forms.NewPatientForm()
if request.method == 'GET':
form = NewPatientForm(request.GET or None)
formset = LocationFormSet(queryset=Past_Location.objects.none())
print("Hey1")
elif request.method == 'POST':
print("Hey2")
form = NewPatientForm(request.POST)
formset = LocationFormSet(request.POST)
if form.is_valid() and formset.is_valid():
patient_info = form.save()
for loc in formset:
location = loc.save(commit=False)
location.save()
location.patient.add(patient_info)
location.save()
return index(request)
else:
print('Error Form Invalid')
return render(request, 'first_app/form_page.html', {'form':form,'formset':formset})