【问题标题】:Django filter all that has certain namesDjango过滤所有具有特定名称的东西
【发布时间】: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' 的错误

【问题讨论】:

  • 哪些内容给出了前景,方法中的认证参数?

标签: django django-queryset


【解决方案1】:

试试看:

prospects.filter(certification__name__in=certifications)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 2013-07-13
    • 2020-03-19
    • 2020-06-10
    • 2012-07-04
    相关资源
    最近更新 更多