غير قادر على الحصول على النتائج عند تمرير سلسلة عن طريق استبدال المعلمة في استعلام GQL

StackOverflow https://stackoverflow.com/questions/1660640

سؤال

أنا قادر على اجتياز متغير سلسلة بشكل صحيح إلى GQLQUERY من خلال استبدال المعلمات، إليك الرمز الذي حاولت استخدامه؛

user_name = self.request.get('username') #retrieved from UI
p = models.UserDetails.all().filter('user_name = ', user_name).fetch(1)

لا أحصل على أي نتائج وفشل الاستعلام بصمت. ولكن عندما أقصد رمز الاستعلام مثل هذا،

p = models.UserDetails.all().filter('user_name = ', "peter rice").fetch(1)

أحصل على النتائج المتوقعة. أعتقد أنني تمر المتغير user_name بطريقة خاطئة، الرجاء مساعدتي في الحصول على قطعة من التعليمات البرمجية الصحيحة.

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

المحلول 2

أعتقد أنني حصلت عليه، حاولت استخدام هذا،

p = models.UserDetails.gql('WHERE user_name = :uname', uname = user_name).fetch(1)

وحصلت على النتائج المتوقعة. أتساءل عن سبب وجود تنسيقات أخرى مشكلة في استبدال السلسلة.

نصائح أخرى

هل حاولت filter('user_name = ', str(user_name)) ?
لقد أعجبني أنك متأكد من أن User_Name لديه المحتوى المتوقع.

حاول تسجيل الدخول repr(user_name) للتحقق من أن السلسلة هي نفسها تماما ما تتوقعه (وأنه ليس Unicode بدلا من الخام). حاول أيضا تسجيل التعبير user_name == "peter rice". وبعد بخلاف ذلك، لا أستطيع أن أرى أي سبب يجعل الأمر لن يعمل - لا توجد طريقة حرفيا يمكن أن يؤثر API على ذلك، لأنه لا يعرف أين تأتي الوسيطة التي تمر بها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top