【问题标题】:How to fetch arrayfield data in django with postgres如何使用 postgres 在 django 中获取数组字段数据
【发布时间】:2019-07-22 06:05:18
【问题描述】:

我正在尝试根据用户的语言(来自 ArrayField)获取用户列表。一个用户可以有多种语言。当我传递单一语言{'Hindi'} 时,它会获取除具有多种语言的用户之外的所有记录,但如果传递参数{'Hindi','bangla','kannada'} 那么它会给我一个特定的记录,我如何获取具有hindi 和@以外的用户列表987654329@ 也是。我也尝试过.all,但它对我不起作用。 任何帮助,将不胜感激。

模型.py

# DESCRIPTION: This function gets the drivers list by lang.
    @classmethod
    def get_driver_by_lang(cls, driver_lang):
        try:
            driver_details = cls.objects.filter(language = driver_lang)
            data = serializers.serialize("json", driver_details)
            data = json.loads(data)
            return data
        except :
            return False

【问题讨论】:

  • 尝试建议的答案和评论。
  • 您也可能有错误的数据库设计。搜索特定的数组元素可能是数据库设计错误的标志。检查这个answer

标签: python django postgresql


【解决方案1】:

这个怎么样:

driver_details = cls.objects.filter(language__contains = driver_lang)

【讨论】:

  • 不会是cls.objects.filter(language__contains=[driver_lang])吗?
  • 没有'[]'它正在工作。让我再用 [] 检查一下。
  • 使用 [] 它会给出错误,但没有它,它可以工作。谢谢@mhd
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-05
  • 1970-01-01
  • 2016-08-11
  • 2020-06-13
  • 2019-03-03
  • 2020-07-07
相关资源
最近更新 更多