Python 将mySQL查询更改为Django
我很难将下面的MySQL查询更改为Django查询Python 将mySQL查询更改为Django,python,mysql,django,django-models,Python,Mysql,Django,Django Models,我很难将下面的MySQL查询更改为Django查询 SELECT * FROM dashboard_db.dashboard_system ds JOIN dashboard_db.dashboard_userpreference up ON ds.id = up.system_id WHERE username = "<user>" 我一直在尝试使用工会和其他一些选择。我知道执行原始SQL查询是一种选择。但是,我想知道是否可以使用Django样式的查询执行联接。我假设您想要系
SELECT * FROM dashboard_db.dashboard_system ds
JOIN dashboard_db.dashboard_userpreference up
ON ds.id = up.system_id
WHERE username = "<user>"
我一直在尝试使用工会和其他一些选择。我知道执行原始SQL查询是一种选择。但是,我想知道是否可以使用Django样式的查询执行联接。我假设您想要
系统
s,其中至少有一个对应的用户首选项
s用户名
是给定的
我们可以使用该模型的名称和两个连续的下划线,通过反向查询集进行查询:
System.objects.filter(userpreference__username='<user>')
因此,我假设您想要
系统
s,其中相应的用户首选项
用户名
是给定的用户名?是的,您是正确的。用户名也是given@Haytes:我添加了一个注释,说明某些系统可能会多次出现,以及如何避免这种情况(您可能对此感兴趣)。这也很有帮助,再次感谢您的快速响应。
System.objects.filter(userpreference__username='<user>')
# systems occur *at most* once
System.objects.filter(userpreference__username='<user>').distinct()