我有MyUser模型与外键和ManyToMany相关字段城市和技能:
class MyUser(AbstractBaseUser):
email = models.EmailField()
skills = models.ManyToManyField('jobs.Skill')
class Skill(models.Model):
name = models.CharField()
假设这是数据库中表数据:
x一个一个一个一个x一个一个二个x
输出为2,但我希望:
MyUser.objects. ..........
回答5我喜欢以下数据:
{'email': 'some@email.com', 'city': 'London', 'skills': 'Python'},
{'email': 'some@email.com', 'city': 'London', 'skills': 'Java'},
{'email': 'another@email.com', 'city': 'Berlin', 'skills': 'JavaScript'},
{'email': 'another@email.com', 'city': 'Berlin', 'skills': 'C#'},
{'email': 'another@email.com', 'city': 'Berlin', 'skills': 'Python'},
2条答案
按热度按时间r6hnlfcb1#
您可以像这样简单地查询:
您还可以将
skills__name
字段重命名为:68de4m5k2#
您可以使用
annoate()
、Count聚合和values()
来获得所需的输出,因此:显然,这不是一个好的解决方案,因为
city
值对于第一和第二用户分别被硬编码为London
和Berlin
。