Django.db.utils.ProgrammingError:运算符不存在:字符变化=整数

2024-09-29 01:37:41 发布

您现在位置:Python中文网/ 问答频道 /正文

伙计们,我需要你们的帮助来弄清楚为什么我在服务器上运行脚本时会出现这个错误。服务器运行一个postgres数据库,我认为这与它被迭代的数据的对象类型有关,但不确定如何修复它。在

Traceback (most recent call last):
  File "scripts/change_topup.py", line 58, in <module>
    main()
  File "scripts/change_topup.py", line 55, in main
    process_file(path)
  File "scripts/change_topup.py", line 45, in process_file
    for enrolment in enrolments:
  File "/opt/cv_instances/cv1/autodeploy/branches/nboreports/.venv/lib/python2.7/site-packages/django/db/models/query.py", line 258, in __iter__
    self._fetch_all()
  File "/opt/cv_instances/cv1/autodeploy/branches/nboreports/.venv/lib/python2.7/site-packages/django/db/models/query.py", line 1074, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/opt/cv_instances/cv1/autodeploy/branches/nboreports/.venv/lib/python2.7/site-packages/django/db/models/query.py", line 52, in __iter__
    results = compiler.execute_sql()
  File "/opt/cv_instances/cv1/autodeploy/branches/nboreports/.venv/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 848, in execute_sql
    cursor.execute(sql, params)
  File "/opt/cv_instances/cv1/autodeploy/branches/nboreports/.venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/opt/cv_instances/cv1/autodeploy/branches/nboreports/.venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/opt/cv_instances/cv1/autodeploy/branches/nboreports/.venv/lib/python2.7/site-packages/django/db/utils.py", line 95, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/opt/cv_instances/cv1/autodeploy/branches/nboreports/.venv/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: operator does not exist: character varying = integer
LINE 1: ...n"."type" = 1 AND "registration_household"."name" IN (SELECT...
                                                             ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

我的剧本在这里

^{pr2}$

已处理的文件包含以下行:

HH |加满|

SD803-11H47782 | MERCY US新POS追加

SD803-09H03991 | DRC-MOG

帮助会很高谢谢。谢谢在


Tags: instancesdjangoinpyexecutedbvenvline
1条回答
网友
1楼 · 发布于 2024-09-29 01:37:41

问题是这条线

enrolments = Enrolment.objects.filter(intervention=intervention, household__name__in=households):

家庭是Household实例的查询集,而不是名称。我认为以下两种方法都可以。在

^{pr2}$

如果使用第二个查询集,那么看起来可以从代码中删除households查询集。在

相关问题 更多 >