我有两个django模特
class Users(models.Model):
id=models.ForeignKey(VirtualMachines, null=True)
email=models.EmailField(null=True)
class UsersDomains(models.Model):
domain_email = models.EmailField(null=True)
domain=models.CharField(null=True)
我想使用内连接从这些表中选择记录。模型之间没有关联,所以我不能使用select_related。我的SQL查询是:
SELECT u.*, du.* FROM
users u
JOIN user_domain du
ON du.domain_email = u.email
不使用select_related如何将django ORM查询写入与我的sql查询相同的记录。
谢谢!
答案 0 :(得分:3)
我不知道你为什么说这两个模特之间没有关系。你做:它只使用char字段而不是ID。这仍然是一个完全有效的外键。您应该声明您的UserDomain:
class UsersDomains(models.Model):
domain_email = models.ForeignKey(Users, to_field='email', null=True)
并将unique=True
添加到Users.domain字段,现在Django将自动执行正确的操作。
答案 1 :(得分:0)
也许这可能会有所帮助 -
http://www.caktusgroup.com/blog/2009/09/28/custom-joins-with-djangos-queryjoin/
基本上它只是使用queryset.query.join
添加你想要的任何连接..