मैं Django टिप्पणियाँ मॉडल में बनाया गया है पर एक साधारण क्वेरी और Heroku के PostgreSQL डेटाबेस के साथ नीचे त्रुटि हो रही है:heroku, postgreSQL, django, टिप्पणियां, tastypie: कोई ऑपरेटर दिए गए नाम और तर्क प्रकार से मेल खाता है। आप स्पष्ट प्रकार जोड़ने के लिए आवश्यकता हो सकती है डाले
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.
इसके चारों ओर googling के बाद इस त्रुटि कई बार संबोधित किया गया है लगता है 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)
किसी कच्चे एसक्यूएल लेखन के बिना इस त्रुटि के आसपास हो रही है के साथ किसी भी अनुभव है?
त्रुटि की तरह कहता है, आप टेक्स्ट मान पर एक पूर्णांक की तुलना करने की कोशिश कर रहे हैं। ऐसा करना बंद करो और त्रुटि दूर हो जाएगी। –
संयोग से, यह एक अच्छा उदाहरण है कि पर्यावरण के साथ परीक्षण क्यों किया जाना चाहिए, जहां आप तैनात कर सकते हैं: हालांकि बहुत से ढांचे पर इसका सार है, डीबीएमएस के रूप में जटिल कुछ अलग व्यवहार और सीमाएं हैं । – IMSoP
आईएमएसओपी, हाँ वास्तव में मैंने आज सबक सीखा! इस मुद्दे पर काम करने के लिए बस मेरे विकास डीबी को PostgreSQL पर बदल दिया। – arctelix