Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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/4/json/13.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 Can';无法使用PostgreSQL找到django auth用户_Python_Django_Postgresql - Fatal编程技术网

Python Can';无法使用PostgreSQL找到django auth用户

Python Can';无法使用PostgreSQL找到django auth用户,python,django,postgresql,Python,Django,Postgresql,这是我的django模型,我使用这个过滤器 from django.contrib.auth.models import User as DjangoUser class Ward(models.Model): user = models.ForeignKey(DjangoUser, related_name='wards') group = models.ForeignKey(Group, related_name='wards') 我在sqlite3中使用了这段代码,它工作

这是我的django模型,我使用这个过滤器

from django.contrib.auth.models import User as DjangoUser
class Ward(models.Model):
    user = models.ForeignKey(DjangoUser, related_name='wards')
    group = models.ForeignKey(Group, related_name='wards')
我在sqlite3中使用了这段代码,它工作得很好

但是,它在PostgreSQL中不起作用

运算符不存在:字符变化=整数 第1行:…存档病房。“组id”),其中“存档病房”。“用户id”=1

我认为这是由
archive\u ward
表中的
user\u id
字段引起的。 我发现这个字段的数据类型是character.variable(20)


对此代码我能做些什么?

Postgres错误表示您正在将整数与字符串进行比较:

Group.objects.filter(wards__user=_user).all()
您可以更改数据库模型,使
user\u id
为整数类型。也可以在Python中将整数转换为字符串:

operator does not exist: character varying = integer

Postgres错误表示将整数与字符串进行比较:

Group.objects.filter(wards__user=_user).all()
您可以更改数据库模型,使
user\u id
为整数类型。也可以在Python中将整数转换为字符串:

operator does not exist: character varying = integer

尝试删除数据库中的用户表,然后再次添加它

从头开始创建一个新数据库。再次同步数据库将起作用

或者您可以通过这种方式进行原始查询

您无法将整数与varchar进行比较。PostgreSQL是严格的,不会为您执行任何神奇的类型转换。我猜SQLServer会自动执行类型转换(这是一件坏事)


如果要比较这两个不同的Beast,必须使用强制转换语法将其中一个强制转换为另一个::

尝试删除数据库中的用户表,然后再次添加它

从头开始创建一个新数据库。再次同步数据库将起作用

或者您可以通过这种方式进行原始查询

您无法将整数与varchar进行比较。PostgreSQL是严格的,不会为您执行任何神奇的类型转换。我猜SQLServer会自动执行类型转换(这是一件坏事)


如果要比较这两个不同的野兽,必须使用强制转换语法将一个野兽强制转换为另一个。不幸的是,这不起作用。因为str(\u user)返回username。所以我会
Group.objects.filter(wards\u user\u id=str(\u user.id)).all()
,但它不存在相同的
运算符:character variating=integer
。不幸的是,它不起作用。因为str(\u user)返回username。所以我做
Group.objects.filter(wards\u user\u id=str(\u user.id))。all()
,但它有相同的
运算符,但不存在:character varing=integer
。是否需要进行迁移?是否更改了用户的字段类型?不,我没有更改django用户。但我在相同的
models.py
中有另一个用户模型。因此,我使用来自django.contrib.auth.models的
将用户导入为DjangoUser
@Sayse,我从其他网站(如post、group、user等)获取数据。忽略我的上一条评论,我自己感到困惑!你需要进行迁移吗?你是否更改了用户字段的类型?不,我没有更改django用户。但我在相同的
models.py
中有另一个用户模型。因此,我使用了来自django.contrib.auth.models的
作为DjangoUser导入用户de>@Sayse,我从其他网站(如帖子、群组、用户等)获取数据。忽略我的最后一条评论,让我自己感到困惑!