.
This commit is contained in:
+14
-10
@@ -39,6 +39,10 @@ class MarkAnatomyQuestionForm(Form):
|
||||
|
||||
|
||||
class AnatomyQuestionForm(ModelForm):
|
||||
|
||||
exams = ModelMultipleChoiceField(queryset=Exam.objects.all())
|
||||
|
||||
|
||||
class Media:
|
||||
# Django also includes a few javascript files necessary
|
||||
# for the operation of this form element. You need to
|
||||
@@ -85,10 +89,10 @@ class AnatomyQuestionForm(ModelForm):
|
||||
queryset=BodyPart.objects.all(),
|
||||
)
|
||||
|
||||
self.fields["exams"] = ModelChoiceField(
|
||||
required=False,
|
||||
queryset=Exam.objects.all(),
|
||||
)
|
||||
#self.fields["exams"] = ModelChoiceField(
|
||||
# required=False,
|
||||
# queryset=Exam.objects.all(),
|
||||
#)
|
||||
|
||||
|
||||
# Only in case we build the form from an instance
|
||||
@@ -100,7 +104,7 @@ class AnatomyQuestionForm(ModelForm):
|
||||
# The widget for a ModelMultipleChoiceField expects
|
||||
# a list of primary key for the selected data.
|
||||
initial['exams'] = [t.pk for t in
|
||||
kwargs['instance'].exams_set.all()]
|
||||
kwargs['instance'].exams.all()]
|
||||
|
||||
ModelForm.__init__(self, *args, **kwargs)
|
||||
|
||||
@@ -114,16 +118,16 @@ class AnatomyQuestionForm(ModelForm):
|
||||
def save_m2m():
|
||||
old_save_m2m()
|
||||
# This is where we actually link the pizza with toppings
|
||||
instance.exams_set.clear()
|
||||
instance.exams.clear()
|
||||
for exam in self.cleaned_data['exams']:
|
||||
instance.exams_set.add(exam)
|
||||
instance.exams.add(exam)
|
||||
|
||||
self.save_m2m = save_m2m
|
||||
|
||||
# Do we need to save all changes now?
|
||||
if commit:
|
||||
instance.save()
|
||||
self.save_m2m()
|
||||
#if commit:
|
||||
instance.save()
|
||||
self.save_m2m()
|
||||
|
||||
return instance
|
||||
|
||||
|
||||
Reference in New Issue
Block a user