假设我有以下模型
class Offer(models.Model):
skills_required = models.ManyToManyField(Skill, blank=True)
class Skill(models.Model)
title = models.CharField(max_length=80, primary_key=True)
class UserProfile(models.Model):
skills = models.ManyToManyField(Skill)如何使用Offer.objects实例过滤UserProfile,使剩余报价的skills_required成为user_profile.skills的子集
发布于 2021-08-18 15:22:52
我们可以计算该服务所需技能的数量,并检查该技能的数量是否等于该用户配置文件的技能数量:
from django.db.models import Count, F, Q
Offer.objects.alias(
req_skill=Count('skills_required', distinct=True),
skills=Count(
'skills_required',
filter=Q(skills_required__userprofile=my_userprofile),
distinct=True
)
).filter(
req_skill=F('skills')
)对于django-3.2之前的Django,您应该使用[Django-doc]而不是[Django-doc]。
https://stackoverflow.com/questions/68834978
复制相似问题