basit bir yorum modelinde inşa django yıllardan sorguyu ve Heroku en postgreSQL veritabanı ile aşağıdaki hatayı alıyorum var atmalarını: etrafında Googling sonraheroku, postgreSQL, django, yorumlar, tastypie: Hiçbir operatör, verilen isim ve argüman türü ile eşleşmiyor. Sen açık türünü eklemeniz gerekebilir
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.
bu hata birçok kez ele alınmıştır görünüyor django'da daha önce, ama hala alıyorum (tüm ilgili konular 3-5 yıl önce kapatıldı). Ben django sürüm 1.4 ve en son tastypie yapıyorum kullanıyorum.
sorgu orm filtrelerin altında yapılır ve benim geliştirme veritabanı (Sqlite3) ile mükemmel çalışıyor:
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)
Herkes ham SQL yazmadan bu hatanın dolaşmakta herhangi bir deneyimi var?
Hatada olduğu gibi, bir tamsayı bir metin değeriyle karşılaştırmaya çalışıyorsunuz. Bunu yapmayı bırak ve hata gider. –
Tesadüfen, testin nereye yerleştirildiğinize mümkün olduğunca yakın bir ortamla yapılmasının iyi bir örneği. Ancak, bir çerçeve, bir DBMS'nin karmaşık olduğu kadar farklı bir davranış ve sınırlamaya sahip olduğu kadar karmaşık bir şey olduğunu söylüyor. . – IMSoP
IMSoP, evet, bugün dersi aldım! Bu sorun üzerinde çalışmak için geliştirme DB'yi PostgreSQL'e değiştirdim. – arctelix