سؤال

أحاول إنشاء وظيفة اسم مستخدم فريدة بسيطة للاستخدام في مخطط التكوين. ها هي الوظيفة:

class UniqueUsername(formencode.FancyValidator):   
    def _to_python(self, value, state):  
        user = DBSession.query(User.user_name).filter(User.username==value)  
        if user is not None:  
            raise formencode.Invalid(
            'That username already exists', value, state)  
        return value  

المشكلة هي أن الاستعلام يتم إنشاؤه ولكنه لا يضرب قاعدة البيانات أبدًا. يحتوي متغير المستخدم ببساطة على الاستعلام الذي تم إنشاؤه ، وليس نتائج الاستعلام. كيف يمكنني إصلاح هذا؟ شكرا جزيلا.

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

المحلول

يجب أن يكون:

user = DBSession.query(User.user_name).filter(User.username==value).first()

أيضا: هل هو user.user_name أو user.username؟

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