我有这个问题,我需要一个如何解决它的想法,因为我需要它做很多事情。我会尽我所能地把我需要的东西弄清楚。
首先,我要做的是一个药物处方,所以我需要保存一个病人的数据,多少药品和医生要求病人。所以我有两个模型,病人数据模型和药物模型。
models.py
class RecipePatientData(models.Model):
patient = models.ForeignKey(patientData)
created_at = models.DateTimeField(auto_now_add=True)
doctor = models.ForeignKey(DoctorData)
observations = models.CharField(max_length=300)
class PrescriptionDrugs(models.Model):
recipe_data = models.ForeignKey(RecipePatientData)
prescripted_drug = models.ForeignKey(Drugs)
quantity = models.IntegerField(default=0)
day_of_treatment = models.IntegerField(default=0)我的问题是,我不知道谁应该保存药物,因为我需要在同一个模板中添加尽可能多的药物,我有一个按钮为下一种药物添加新的字段,我通过克隆主表单来完成这个任务。

我想知道django是否有一种方法可以将字段转换为列表中的字段,或者某种可以帮助我保存药物的方法,即使字段名相同。我试图通过视图中的cleaned_data获取它们,但它只为我提供了主字段,而不是克隆字段。
发布于 2016-03-08 19:24:19
是的,您需要的是FormSets,它允许您在同一个页面上处理多个窗体。
这里有一个例子:
# forms.py
form django import forms
from your.models import PrescriptionDrugs
class PrescriptionDrugsForm(forms.ModelForm):
class Meta:
model = PrescriptionDrugs
fields = ("__all__")论views.py
# views.py
class YourView(FormView):
template_name = 'template.html'
form_class = formset_factory(PrescriptionDrugsForm, extra=3) #number of forms
success_url = '/your-url/'
def form_valid(self, form):
form f in form:
f.save()
return super(YourView, self).form_valid(form)论template.html
<form method="POST">
{% csrf_token %}
{{ form.management_for }}
{% for f in form %}
{{ f.as_p }}
{% endfor %}
</form>https://stackoverflow.com/questions/35876046
复制相似问题