- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将数据库从 sqlite 更改为 postgresql 以用于我网站的生产,但出现此错误。当我在本地使用 sqlite 时,它没有出现这个错误。使用 Django。
ProgrammingError at /boards/1/companies/1/
operator does not exist: character varying + character varying
LINE 1: ...Col1, (AVG(((("boards_review"."move_in_condition" + "boards_...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Request Method: GET
Request URL: http://www.flythecoop.io/boards/1/companies/1/
Django Version: 2.2.6
Exception Type: ProgrammingError
Exception Value:
operator does not exist: character varying + character varying
LINE 1: ...Col1, (AVG(((("boards_review"."move_in_condition" + "boards_...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Exception Location: /home/reviews/venv/lib/python3.8/site-packages/django/db/backends/utils.py in _execute, line 84
Python Executable: /home/reviews/venv/bin/python3.8
Python Version: 3.8.0
Python Path:
['/home/reviews/venv/bin',
'/home/reviews/reviews',
'/home/reviews/venv/lib/python38.zip',
'/home/reviews/venv/lib/python3.8',
'/home/reviews/venv/lib/python3.8/lib-dynload',
'/usr/lib/python3.8',
'/home/reviews/venv/lib/python3.8/site-packages']
Server time: Sun, 24 Nov 2019 05:52:27 +0000
Error during template rendering
In template /home/reviews/reviews/templates/baseb.html, error at line 0
operator does not exist: character varying + character varying LINE 1: ...Col1, (AVG(((("boards_review"."move_in_condition" + "boards_... ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
查看错误,它说了一些关于代码片段的内容 (AVG(((.........Avg 的作用是显示一家公司所有评论的平均评分。每个字符串(例如“move_in_condition”)都具有整数值。我唯一拥有的地方是我的 models.py
class Company(models.Model):
name = models.CharField(max_length=255, unique=True)
#bio = models.TextField(max_length=4000)
last_updated = models.DateTimeField(auto_now_add=True)
board = models.ForeignKey(Board, on_delete = models.CASCADE, related_name='companies')
starter = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
related_name='companies',
)
views = models.PositiveIntegerField(default=0)
def __str__(self):
return self.name
def get_avg(self):
return self.reviews.annotate(
overall_rating = Avg(
F('move_in_condition') +
F('treatment') +
F('response_speed') +
F('maintenance_quality')
)/4).aggregate(
Avg('overall_rating'),
Avg('move_in_condition'),
Avg('treatment'),
Avg('response_speed'),
Avg('maintenance_quality')
)
查看其他回复,看起来我必须添加显式类型转换,但我不确定如何实现,或者我应该以某种方式完全摆脱“+”吗?
编辑 - 如果这是更好的方法,则更新为使用整数字段,但仍然有同样的问题。包括我的以下字段:
class Review(models.Model):
RATING_CHOICES = (
(1, '1'),
(2, '2'),
(3, '3'),
(4, '4'),
(5, '5'),
)
STAY = (
('less than 6 months', 'less than 6 months'),
('6 months', '6 months'),
('10 months', '10 months'),
('12 months', '12 months'),
('More than 1 year', 'More than 1 year'),
)
YES_NO = (
('Yes', 'Yes'),
('No', 'No'),
)
SECURITY = (
('100%', '100%'),
('75%', '75%'),
('50%', '50%'),
('25%', '25%'),
('0%', '0%'),
('Still waiting', 'Still waiting'),
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(null=True)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete = models.CASCADE, related_name='reviews')
updated_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete = models.CASCADE, null=True, related_name='+')
company = models.ForeignKey(Company, on_delete = models.CASCADE, related_name='reviews')
address = models.CharField(max_length=200, blank=False, default="")
length_of_stay = models.CharField(max_length=20, choices=STAY, blank=False, default='None')
move_in_condition = models.IntegerField(choices=RATING_CHOICES, blank=False, default='5')
#Landlord Interaction
treatment = models.IntegerField(choices=RATING_CHOICES, blank=False, default ="5")
response_speed = models.IntegerField(choices=RATING_CHOICES, blank=False, default ="5")
maintenance_quality = models.IntegerField(choices=RATING_CHOICES, blank=False, default ="5")
security_deposit_returned = models.CharField(max_length=5, choices=SECURITY, blank=False, default ="None")
#put text "ignore if still waiting"
is_this_a_fair_amount = models.CharField(max_length=5, choices=YES_NO, blank=False, default="1")
would_you_recommend = models.CharField(max_length=5, choices=YES_NO, blank=False, default="1")
additional_comments = models.TextField(max_length=4000)
def __str__(self):
return self.address
最佳答案
Postgres 对 string 使用不同的 (ANSI/SQL) 符号连接操作。您应该使用 ||
而不是 +
。像 Postgres 一样的运营商有 Oracle。
postgres=# SELECT varchar 'AHOJ' + varchar 'AHOJ';ERROR: operator does not exist: character varying + character varyingLINE 1: SELECT varchar 'AHOJ' + varchar 'AHOJ'; ^HINT: No operator matches the given name and argument types. You might need to add explicit type casts.postgres=# SELECT varchar 'AHOJ' || varchar 'AHOJ';+----------+| ?column? |+----------+| AHOJAHOJ |+----------+(1 row)
关于python - 运算符不存在 : character varying + character varying,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59015202/
我将数据库从 sqlite 更改为 postgresql 以用于我网站的生产,但出现此错误。当我在本地使用 sqlite 时,它没有出现这个错误。使用 Django。 ProgrammingErr
对于同一资源的请求,HTTP 服务器有时使用 Vary: * 有时使用 Vary: Foo 响应是否有任何原因? 缓存应该做什么,如果在收到(和缓存)两个响应后,它会收到一个带有匹配的 Foo hea
对于我的应用程序,我创建了一个 SQL 文件补丁以将列 user_name 添加到现有表中: CREATE OR REPLACE FUNCTION add_col( _tbl VARCHAR,
我希望有人能帮忙 1) 在小平面图中跨面板改变 x 轴的格式 2) 仅在刻面左侧显示黄土较光滑。 左边是更长的历史,右边是过去十二个月。 真实数据集有更多数据(更多时间和更多变量),因此这些问题变得更
当我尝试在数组数组中搜索一个数组值时出现上述错误。我的代码: sequelize.define('room', { 'id' : {'type' : DataTypes.INTEGER
昨天我们将 PostgreSQL 数据库升级到了 9.1.3 版本。我们认为我们已经测试并准备好了一切,但我们错过了一个功能。它返回这样的表类型: CREATE OR REPLACE FUNCTION
我是 SO 和 postgres 的新手所以请原谅我的无知。尝试使用类似于本文中的解决方案在 postgres 中获取图形的集群 Find cluster given node in PostgreS
我在 MacBook Pro 上使用 GLFW 3 和 OpenGL 4 + GLSL 4。 启动程序时出现以下语法错误: ERROR: 0:5: 'varying' : syntax error s
上下文 我正在构建一个针对 5.0+ 的 Android 应用程序,它使用 BLE 连接到多个外围设备。这些外围设备中的每一个都有许多(~10)个特性。理想情况下,我想订阅这些特征中每一个特征的更改通
根据我对 this question 的回答中所解释的理解您可以为您想要的任何设备调整 Storyboard 上的任何组件的大小,这就是问题发生的地方..我有一张图片,它的常规分辨率是:353x229
我想确保我的某些回复不会被任何人缓存。建议的选项之一是设置 Vary: *。 不幸的是,如果我添加 add_header "Vary""*";,启用了 gzip 支持的 nginx 会返回两个 Var
我试图弄清楚为什么我的Magento 2.2.6商店显示标题: vary: Accept-Encoding,User-Agent 问题是“用户代理”使我的缓存无法正常工作。 我的商店的 build 方
最近,我尝试在该领域之前进行的工作的基础上创建一个股票市场预测程序,其中通过 Python 中的 Keras 模块创建的神经网络接收来自 Quandl 的调整后的股票价格信息,利用上述信息来训练自己。
我正在使用 moment.js 和 Moment Timezone 来处理不同时区的 ISO 日期。然而,我一定是做错了什么,因为我从解析中得到的结果是完全错误的,即使据我所知我并没有做任何奇怪的事情
在 Android Studio 2.2.2 中,我在 AndroidManifest.xml 文件中有一个错误 Resources referenced from the manifest cann
在我的用户模型上运行一个简单的语句,但不断收到有关运算符与任何给定参数不匹配的错误。我以前从未遇到过这样的事情,也不知道如何处理。我知道我可能必须添加类型转换,但在我的 POSTGRES 数据库中,列
我因异常而失去理智,我需要你的帮助。 我已经将查询写入映射器,该映射器根据两个条件从表中检索记录:列表中的“位置”和另一个列表中的“技能”。 所以,基本上,如果用户选择了不止一种技能来查找,查询将恢复
我需要帮助来查看以下查询,我有如下表格: CREATE TABLE "MasterDivision" ( "DivisionID" bigserial NOT NULL, "Divis
我的 postgres 数据库表有一个列位置是字符 varying[]。在我的表的 nestjs 实体中,我有以下位置列- @Column("character varying",{array:tr
我的模型有一个 SlugField。当我尝试将 slug 字段设置为比字段的 max_length 参数(默认为 50)长的字符串来保存此模型的实例时,我从 Postgresql 收到以下错误:val
我是一名优秀的程序员,十分优秀!