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) 一。在
我能为这个代码做些什么?在
请尝试删除数据库中的用户表,然后重新添加。在
从头开始创建一个新的。再次同步数据库将起作用。。在
或者您可以这样做原始查询
不能将整数与varchar进行比较。PostgreSQL是严格的,不做任何魔术式的排字。我猜SQLServer会自动排版(这是件坏事)。在
如果你想比较这两种不同的野兽,你必须使用投射语法::
Postgres错误表示您正在将整数与字符串进行比较:
您可以更改数据库模型,使
^{pr2}$user_id
为整数类型。或者可以在Python中将整数转换为字符串:相关问题 更多 >
编程相关推荐