سؤال

أحاول مقارنة المفتاح لتصفية النتائج في GQL في بيثون ولكن المقارنة المباشرة أو TypeCasting للأعمال الدولية. هناك مقدمة أنا أجبر على عمل عمل كما هو مذكور في خطوط غير مدهشة أدناه. أي أدلة.

row = self.request.get("selectedrow")
#mydbobject = DbModel.gql("WHERE key=:1", row).fetch(1)
#mydbobject = DbModel.gql("WHERE key=:1", int(row)).fetch(1)#invalid literal for int()   with base 10
#print mydbobject,row

que = db.Query(DbModel)
results = que.fetch(100)
mydbobject = None
for item in results:
if item.key().__str__() in row:
    mydbobject = item

Edit1- محاولة أخرى لا تسترجع السجل، والمفتاح موجود في DataStore جنبا إلى جنب مع تسجيل MyDboBject = dbmodel.gql ("حيث المفتاح = المفتاح ('٪ S')"٪ صف). (1)

هل كانت مفيدة؟

المحلول

هل أنا صحيح في افتراضي أنك تريد فقط استرداد كائن مع مفتاح معين؟ إذا كان الأمر كذلك، أساليب الحصول على و get_by_id قد يكون من المساعدة:

mydbobject = DbModel.get_by_id(int(self.request.get("selectedrow")))

نصائح أخرى

يشير الخطأ "حرفي غير صالح لل int ()" إلى أن المرور Paramater إلى Int لم يكن سلسلة يمثل عددا صحيحا. حاول طباعة قيمة "الصف" لتصحيح الأخطاء، أراهن أنها سلسلة فارغة.

الطريقة الصحيحة لاسترداد عنصر من المفتاح ببساطة عن طريق استخدام الطريقة "احصل" أو "get_by_id". في حالتك:

row = self.request.get("selectedrow")
mydbobject = DbModel.get(row)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top