【问题标题】:How avoid duplicate records when use annotate() in queryset在查询集中使用 annotate() 时如何避免重复记录
【发布时间】:2022-01-19 05:01:49
【问题描述】:

我得到这个查询集的某些方法接收一条记录

candidates_qs = self.filter_job_type_language_zones(job_type_id, filter_languages, filter_zones)

然后我需要将 charfield 转换为 integerfield 以与某个值进行比较

candidates_qs = self.filter_job_type_language_zones(job_type_id, filter_languages, filter_zones)
        candidates_qs = candidates_qs.annotate(
            # cast answer_text as integer to compare with question value
            as_integer=Cast('candidatejobtype__questions_answers__answer_text', IntegerField()))

之后我的查询集有重复的记录。我尝试 distinct() 但没有奏效。如何避免重复记录?

【问题讨论】:

    标签: django django-rest-framework django-queryset django-orm


    【解决方案1】:

    模型之间的关系如何?在您的注释中,有一个查找,所以我的假设是它可能会重复。

    查询集中只有一个对象,但与许多questions_answers相关,每个对象都有自己的answer_text

    我认为,这里的一些模型定义会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多