【发布时间】:2017-07-25 20:28:09
【问题描述】:
我有一个非常相似的问题 Django filter queryset __in for *every* item in list
我需要选择所有具有特定certifications 定义的prospects
class Prospect(models.Model):
certification = models.ManyToManyField(Certification, blank=True, related_name="certification_prospects")
class Certification(models.Model):
name = models.CharField(max_length=200, null=True, blank=True)
例如,如果我有证书 ['CPA', 'PhD'],我希望所有潜在客户都拥有 CPA 和PhD,如果他们多于或少于这两个,我想排除他们。
我正在使用这个解决方案,正如之前的链接所给出的那样
def searchForProspectByCertifications(prospects, certifications):
prospects = prospects.filter(certification__in=certifications).annotate(num_certifications=Count('certification')).filter(num_certifications=len(certifications))
return prospects
但我收到ValueError: invalid literal for int() with base 10: 'CPA' 的错误
【问题讨论】:
-
哪些内容给出了前景,方法中的认证参数?