Howdy Folks, I have been testing model inheritance using models that have UUIDField primary keys. It appears that when you save a new instance of a child model, the framework is not calling get_db_prep_value() to convert the UUIDField to a proper format before querying the parent entry.
Let's say we have two very simple models: class Person(models.Model): id = UUIDField(primary_key=True) name = models.CharField(max_length=32) class Child(Person): grade = models.SmallIntegerField() If you do this... c = Child(name="Mary", grade=5) c.save() ...the framework will first create the myapp_person entry. Then it does a query like this: SELECT (1) AS "a" FROM "myapp_child" WHERE "myapp_child"."person_ptr_id" = %s I put some print statement in all of the methods in UUIDField, and none of them are being called before that statement is executed, including: get_db_prep_lookup, get_db_prep_value, get_db_prep_save, pre_save The result is an error from the database: <class 'psycopg2.ProgrammingError'>: can't adapt Interesting note... the psycopg driver doesn't generate an error. Even though it is an older driver, apparently is is less picky about the parameters. Psycopg will accept a uuid object in the statement that fails and apperently psycopg2 wants it cast to a string. If anyone has an idea I would love to hear it. By the way, I'm using a modified version of the UUIDField from the django-extensions project. This is one that uses a native uuid field for the database when the backend supports it (postgresql) and a charfield when the backend doesn't support it (others). I did some tests and performance with postgresql is better with the native type (not suprising). --gordon --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---