Comment (by Marek Rouchal):
The specific problem I am facing is that I need to access an existing
database whose schema I cannot alter; I used the Django tool to extract
the tables to create models.py, which worked great, and I already hacked
the model definitions, e.g. to replace a simple IntegerField with a
ForeignKey. But there are specific tables, where there is an IntegerField
which may contain a ForeignKey from more than one table (think of a group
and a user table; whether it is a user or a group, is defined by another
column):
class Permission(models.Model):
...
user_or_group_id = models.IntegerField(db_column='user_or_group_id',
blank=True, null=True)
is_group = models.IntegerField(db_column='is_group', blank=True,
null=True)
So what I would need here is something like a union on ForeignKey (coming
from either a User or a Group table).
So I used raw SQL for the required joins; I have not been able to
formulate a Django queryset to join on a field which is not modeled with
ForeignKey.
That is why I was asking for some better support of raw SQL...
--
Ticket URL: <https://code.djangoproject.com/ticket/34168#comment:2>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.