[1] https://docs.djangoproject.com/en/4.1/ref/contrib/contenttypes/#generic-relations
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 some 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 the reference 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) in the model, but I guess that does not exist?
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, reference is this ticket: https://code.djangoproject.com/ticket/34168Any suggestion how I can model such an integerfield, so that I can do joins on it using the Django ORM queryset syntax?
No comments:
Post a Comment