DatabaseError: operator does not exist: integer = text LINE 1: ... INNER JOIN "django_comments" ON ("pi ns_pin"."id" = "django_... ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
在谷歌搜索之后,似乎这个错误在django之前已经被处理了很多次,但我仍然得到它(所有相关的问题在3 – 5年前关闭).我使用django版本1.4和最新的tastypie构建.
查询是在orm过滤器下完成的,并且与我的开发数据库(sqlite3)完美配合:
class MyResource(ModelResource): comments = fields.ToManyField('my.api.api.CmntResource','comments',full=True,null=True) def build_filters(self,filters=None): if filters is None: filters = {} orm_filters = super(MyResource,self).build_filters(filters) if 'cmnts' in filters: orm_filters['comments__user__id__exact'] = filters['cmnts'] class CmntResource(ModelResource): user = fields.ToOneField('my.api.api.UserResource','user',full=True) site_id = fields.CharField(attribute = 'site_id') content_object = GenericForeignKeyField({ My: MyResource,},'content_object') username = fields.CharField(attribute = 'user__username',null=True) user_id = fields.CharField(attribute = 'user__id',null=True)