У меня есть простой запрос на построение django в модели комментариев и получение ошибки ниже с помощью базы данных postgreSQL от heroku:
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.
После поиска по всему миру эта ошибка была рассмотрена много раз в джанго, но я все еще получаю ее (все связанные проблемы были закрыты 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)
У кого-нибудь есть опыт обхода этой ошибки без написания необработанного SQL?