0
我有一个模型:Django的多种形式
class HospitalDoctor(models.Model):
hospital = models.ForeignKey(Hospital)
full_name = models.CharField(max_length=100, unique=True)
expertization = models.CharField(max_length=50)
nmc_no = models.CharField(max_length=20)
timings = models.ManyToManyField('Timing', related_name='shift_timing')
appointment = models.IntegerField(default=0)
def __unicode__(self):
return self.full_name
class Timing(models.Model):
hospital = models.ForeignKey(Hospital)
doctor = models.ForeignKey(HospitalDoctor)
day = models.CharField(max_length=20)
mng_start = models.IntegerField()
mng_end = models.IntegerField()
eve_start = models.IntegerField()
eve_end = models.IntegerField()
def __unicode__(self):
return self.day
和我创建形式是:
class HospitalDoctorInfoForm(forms.ModelForm):
class Meta:
model = HospitalDoctor
fields = ('hospital','full_name', 'expertization', 'nmc_no')
class TimingForm(forms.ModelForm):
class Meta:
model = Timing
fields = ('day','mng_start', 'mng_end', 'eve_start', 'eve_end')
这里II要创建有关医生的信息,像他从HospitalDoctorInfoForm个人信息和TimingForm的一周时间表。
我想我应该在TimingForm使用表单集的时间7天的日程与像周日,周一一天的初始值...
我已经写了看法:
class HospitalDoctorAddView(CreateView):
template_name = "hospital_doctor_add.html"
model = HospitalDoctor
def post(self, request, *args, **kwargs):
info_form = HospitalDoctorInfoForm(request.POST)
formset = modelformset_factory(request.POST, Timing, form=TimingForm, extra=7)
if formset.is_valid() and info_form.is_valid():
self.formset_save(formset)
self.info_form_save(info_form)
context['formset'] = formset
return render(request, self.template_name, context)
def formset_save(self, form):
frm = Timing()
frm.hospital = self.request.user
frm.mng_start = form.cleaned_data['mng_start']
frm.mng_end = form.cleaned_data['mng_end']
frm.eve_start = form.cleaned_data['eve_start']
frm.eve_end = form.cleaned_data['eve_end']
frm.save()
def info_form_save(self, form):
info = HospitalDoctor()
info.hospital = self.request.user
info.full_name = form.cleaned_data['full_name']
info.expertization = form.cleaned_data['expertization']
info.nmc_no = form.cleaned_data['nmc_no']
info.save()
当我这样做它会给出错误提示“创建不带'fields'属性的'ModelForm'或者'exclude'属性已被弃用 - TimingForm表单需要更新 ”。我需要帮助。这是我正在做的或者有另一种实现方式。
感谢名单的人帮我... – gamer 2014-10-31 08:27:59