【问题标题】:Django filter exact value in listDjango过滤列表中的确切值
【发布时间】:2021-06-12 08:09:44
【问题描述】:

又是美好的一天。我希望你能帮助我理解一些逻辑。

基于此SO Answer,我可以使用完美运行的列表过滤搜索。但是,我希望获得一个 EXACT id 而不是至少一个匹配项。

型号:

class Condition:
  condition_name = models.CharField(....)

class Jobs:
  jobs = models.CharField(...)

class JobsConditions:
  account = models.ForeignKey(Account...)
  job_item = models.ForeignKey(Jobs...)
  condition = models.ForeignKey(Condition...)

因此,如果我尝试搜索有条件的职位,我会执行以下操作:

  cond_array = [1,2,4,5] # Append to array based on request.
  condition_obj = Condition.objects.filter(id__in=cond_array)

然后将condition_objJobsConditions 模型进行比较。如何使用它,以便我只会get 仅具有确切条件的工作?不多不少。

【问题讨论】:

    标签: django


    【解决方案1】:

    我想你想要这样的东西:

    1. condition__id 过滤JobsConditions 并获取关联的job_item__jobs 作为列表:
    jobs_list = (JobsConditions.objects
        .filter(condition__id__in=cond_array)
        .values_list('job_item__jobs', flat=True))
    
    1. 过滤Jobs jobs_list:
    jobs = Jobs.objects.filter(jobs__in=jobs_list)
    

    【讨论】:

    • 也添加这个Jobs.objects.filter(jobsconditions_set__id__in=cond_array)。可以在查询中使用__ 遍历关系。
    猜你喜欢
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多