我有一个模型,在另一个外键上。 DB结构:强制django使用两个外键之一
class LightUsers(models.Model):
admin = models.ForeignKey(User, db_index=True, related_name="lightuser_admin")
user = models.ForeignKey(User, db_index=True, related_name="lightuser_user")
class User(models.Model):
...
我要像执行查询:
SELECT * FROM lightusers INNER JOIN user ON (lightusers.admin_id = user.id) WHERE lightusers.user_id IN (1, 2, 3)
要做到这一点,我写下面的代码:
light_users = LightUsers.objects.filter(user__in=[1,2,3]).select_related('user')
但是Django的翻译这段代码查询与加盟另一个外键字段。像这样:
SELECT * FROM lightusers INNER JOIN user ON (lightusers.user_id = user.id) WHERE lightusers.user_id IN (1, 2, 3)
有没有办法强制Django使用我想要的外键。或者原始查询是唯一的选择?
触发一个字段的使用情况是什么? – karthikr 2015-04-03 18:37:53
@karthikr我需要从**用户**表中获取**用户**表中的数据 – 2015-04-03 18:47:02