找不到使用PostgreSQL的Django auth用户

2024-10-05 14:31:37 发布

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

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')

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

^{pr2}$

我在sqlite3中使用了这段代码,它工作得很好。在

但是,它在PostgreSQL中不起作用。在

operator does not exist: character varying = integer LINE 1: ...rchive_ward"."group_id" ) WHERE "archive_ward"."user_id" = 1

我认为这是由archive_ward表中的user_id字段引起的。 我发现这个字段的数据类型是性格。变化(20) 一。在

我能为这个代码做些什么?在


Tags: django代码namefromidmodelsgroupcontrib
2条回答

请尝试删除数据库中的用户表,然后重新添加。在

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

或者您可以这样做原始查询

不能将整数与varchar进行比较。PostgreSQL是严格的,不做任何魔术式的排字。我猜SQLServer会自动排版(这是件坏事)。在

如果你想比较这两种不同的野兽,你必须使用投射语法::

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

operator does not exist: character varying = integer

您可以更改数据库模型,使user_id为整数类型。或者可以在Python中将整数转换为字符串:

^{pr2}$

相关问题 更多 >