X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/ed6b9876b7abff0b2dc6266d6f769c319f358a9c..b7bb8ec0115e9c9928a0e3177db027b0586d14d6:/philo/admin/forms/attributes.py diff --git a/philo/admin/forms/attributes.py b/philo/admin/forms/attributes.py index fc77d0f..4a6dd67 100644 --- a/philo/admin/forms/attributes.py +++ b/philo/admin/forms/attributes.py @@ -1,6 +1,7 @@ from django.contrib.contenttypes.generic import BaseGenericInlineFormSet from django.contrib.contenttypes.models import ContentType from django.forms.models import ModelForm + from philo.models import Attribute @@ -20,7 +21,7 @@ class AttributeForm(ModelForm): # This is necessary because model forms store changes to self.instance in their clean method. # Mutter mutter. value = self.instance.value - self._cached_value_ct = self.instance.value_content_type + self._cached_value_ct_id = self.instance.value_content_type_id self._cached_value = value # If there is a value, pull in its fields. @@ -31,7 +32,7 @@ class AttributeForm(ModelForm): def save(self, *args, **kwargs): # At this point, the cleaned_data has already been stored on self.instance. - if self.instance.value_content_type != self._cached_value_ct: + if self.instance.value_content_type_id != self._cached_value_ct_id: # The value content type has changed. Clear the old value, if there was one. if self._cached_value: self._cached_value.delete() @@ -41,8 +42,8 @@ class AttributeForm(ModelForm): # Now create a new value instance so that on next instantiation, the form will # know what fields to add. - if self.instance.value_content_type is not None: - self.instance.value = self.instance.value_content_type.model_class().objects.create() + if self.instance.value_content_type_id is not None: + self.instance.value = ContentType.objects.get_for_id(self.instance.value_content_type_id).model_class().objects.create() elif self.instance.value is not None: # The value content type is the same, but one of the value fields has changed.