【发布时间】:2021-02-23 03:00:37
【问题描述】:
我正在尝试获取具有多种技能的用户 ID。下面是给我正确结果的 postgre 查询,我在 Django 中实现相同的结果时被卡住了。
SELECT "Extractor_usr_skills"."user_id"
FROM "Extractor_usr_skills" WHERE "Extractor_usr_skills"."skill_id"
IN (356, 360) GROUP BY "Extractor_usr_skills"."user_id" HAVING COUNT("Extractor_usr_skills"."user_id") = 2
我可以通过关注 (Django queryset - column IN() GROUP BY HAVING COUNT DISTINCT ) 来做到这一点。我们有更好的解决方案吗?
class Usr_Details(models.Model):
name = models.CharField(max_length=255, blank=True)
phone_number = PhoneNumberField(blank=True)
email = models.EmailField(max_length=254, blank=True)
exp = models.FloatField(max_length=9, blank=True)
education = models.CharField(max_length=110, blank=True)
college = models.CharField(max_length=255, blank=True)
currentEmployer = models.CharField(max_length=255, blank=True)
gender = models.CharField(max_length=6, blank=True)
class Skills(models.Model):
skill = models.CharField(max_length=100, blank=True)
class Usr_Skills(models.Model):
user = models.ForeignKey('Usr_Details', on_delete=models.CASCADE)
skill = models.ForeignKey('Skills', on_delete=models.CASCADE)
【问题讨论】:
-
显示您的相关模型
-
@ArakkalAbu 我已经用模型编辑了问题
-
嘿,Django 有 ORM Documation Link
标签: python-3.x django postgresql django-queryset