auth.Message ignores directions from database router
|Reported by:||Owned by:||nobody|
|Component:||Database layer (models, ORM)||Version:||1.2-beta|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
I'm using django-multidb-router from here: http://github.com/jbalogh/django-multidb-router With two database definitions, a read_only_user and a read_write_user (with the intentions of having multiple read-only definitions).
As far as I can tell, all reads get directed to the read_only_user and all writes get detected to read_write_user. That is, until contrib.Admin tries to create a new user message for a save() which for tries to write with the read_only_user and fails.
When overriding auth.Message.save() with an empty function, the admin interface resumes working as expected, with reads and writes being sent to the appropriate databases.
From what I guess by looking at the traceback,
RelatedManager is overriding
get_query_set() to set the query-set's DB. But when the
create() call gets down to
obj.save() (line 350) is called, and forces
using to self.db, negating any direction from the Router.