如何在jquery的帮助下重复django中的模型字段?

时间:2017-07-18 01:55:35

标签: jquery django django-models django-forms

我有以下型号

models.py

class Medicine(models.Model):
    name = models.CharField(max_length=100, default='')

class Prescription(models.Model):
    prescribed_medicine = models.ManyToManyField(Medicine)
    doctor = models.ForeignKey(User, on_delete= models.CASCADE,related_name= 
                               'doctor_id')
    patient = models.ForeignKey(User, on_delete= models.CASCADE, 
                                 related_name= 'patient_id')
    chief_complaint = models.TextField('Chief Complaint', max_length=100, 
                                        default='')
    on_examination_notes = models.TextField('On Examination Notes', 
                                            max_length=200, default='')
    diagnosis = models.TextField('Diagnosis', max_length=200, default='')

views.py

class PrescriptionCreate(LoginRequiredMixin, CreateView):
    form_class = PrescriptionForm
    template_name= 'core/prescription_form.html'

    def form_valid(self, form):
        obj = form.save(commit=False)
        obj.doctor_id = self.request.user.id
        obj.patient_id = self.kwargs['patient_id']
        return super(PrescriptionCreate, self).form_valid(form)

forms.py

class PrescriptionForm(forms.ModelForm):
    class Meta:
        model = Prescription
        fields = ('chief_complaint', 'on_examination_notes', 'diagnosis', 
                    'prescribed_medicine')

我正在尝试创建模型表单的表单字段的多个实例,尝试使用表单集,但它们对我来说并不是那么清楚。

我究竟要做的是,当医生给病人开处方时,应该有3个空的字段用于dispos_medicine,并且添加更多按钮可以为处方药添加更多空字段以及删除选项毗邻医学领域。

1 个答案:

答案 0 :(得分:1)

你刚才描述了django formset。

我建议您查看django dynamic formset。根据您的模型,实现起来应该非常简单。 对于更复杂的模型,我建议从头开始创建jQuery部分以防止jQuery复杂化。