Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换_Python_Django - Fatal编程技术网

Python Django:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换

Python Django:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换,python,django,Python,Django,在我的postgresql上筛选数据时,我在获取此错误时遇到问题,它说错误来自这一行。filterbene_id='31452'。我在Django用了两张桌子。我认为问题出在我的操作符上,因为id是整数,但问题是如何替换该操作符,以及应该替换什么 我试着放置双qoute、单qoute,甚至没有这样的元素。filterbene_id=31452、.filterbene_id=31452、.filterbene_id='31452'。但这个错误似乎还没有解决。如果有人能找出我哪里做错了,那就太好了。

在我的postgresql上筛选数据时,我在获取此错误时遇到问题,它说错误来自这一行。filterbene_id='31452'。我在Django用了两张桌子。我认为问题出在我的操作符上,因为id是整数,但问题是如何替换该操作符,以及应该替换什么

我试着放置双qoute、单qoute,甚至没有这样的元素。filterbene_id=31452、.filterbene_id=31452、.filterbene_id='31452'。但这个错误似乎还没有解决。如果有人能找出我哪里做错了,那就太好了。事先非常感谢

错误

views.py

Models.py

设置.py


Testing=B2BenesStatus.objects.using'matchy_data'。filterbene_id=int'31452'

否则


Testing=B2BenesStatus.objects.filterbene_id=int'31452'

尝试此方法并检查其是否有效:

假设bene_id确实作为整数存储在现有SQL数据库中,请仔细检查:

由于bene_id是一个整数字段,.filterbene_id='31452'将失败,因为'31452'是字符串类型。另外,请注意,Python中的和之间没有根本区别

您需要将int类型传递给bene_id参数,类似于.filterbene_id=31452


您说您尝试不使用字符串分隔符但没有成功,但我怀疑这背后还有另一个问题。

将查找中的id更改为整数@PacketLoss但是在我的模型中它已经被设置为integerFiled bene_id=models。IntegerFieldblank=True,null=True,你的意思是应该把它改成TextField吗?我想问题出在我的操作符上,因为id是整数,但问题是我应该如何以及应该在该操作符中替换什么?ORM查询是正确的。不要使用qoutes,因为它是整数字段。我建议在没有qoutes的代码中再试一次。我没有使用second second database和postgresql,所以如果没有任何效果,并且您有时间,您可以使用相同字段在默认数据库中尝试一个测试模型,然后尝试此测试=B2BenesStatus.objects.filterbene_id=31452我刚刚发现错误是在我想要打印该查询测试时出现的。但它应该是印刷品吗?我应该如何显示测试值?因为QuerySet是惰性的,所以不会立即计算它们,而是在以下代码实际使用它们时进行计算。printTesting应该返回B2BenesStatus对象的_str__表示。
LINE 1: ...2_benes_status" WHERE "b2_benes_status"."bene_id" = 31452  L...
                                                             ^
HINT:  No operator matches the given name and argument types. You might need 
to add explicit type casts.
Testing = B2BenesStatus.objects.using('matchy_data').filter(bene_id='31452')
class B2BenesStatus(models.Model):
datetime = models.DateTimeField(blank=True, null=True)
value = models.BooleanField(blank=True, null=True)
remarks = models.TextField(blank=True, null=True)
bene_id = models.IntegerField(blank=True, null=True)
stat_cat_id = models.IntegerField(blank=True, null=True)
updated_by_id = models.IntegerField(blank=True, null=True)

class Meta:
    managed = False
    db_table = 'b2_benes_status'
DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'payroll',
    'USER':'root',
    'PASSWORD':'',
    'HOST':'localhost',
    'PORT':'3306',

},
    'matchy_data': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'matchy_data',
    'USER':'postgres',
    'PASSWORD':'samplee',
    'HOST':'localhost',
    'PORT':'5432',
},}