2016-05-10 4 views
0

Ich muss überprüfen, ob eine bestimmte E-Mail an einen Benutzer zugeordnet istFilter res.users per E-Mail in Odoo

class validate(http.Controller): 
    @http.route('/cp/validate_email/<email>', auth='none', type='json',website=True) 
    def validate_user(self,email,**kwargs): 
     res = http.request.env['res.users'].search([('login','=',email)]) 
     res_validate = False if len(res) > 0 else True 
     return {'validate': res_validate,} 

Ich erhalte die folgende Fehlermeldung:

s = self._fmt % record.__dict__ 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 61: ordinal not in range(128) 
Logged from file sql_db.py, line 237 
2016-05-10 03:48:00,712 23361 ERROR inova openerp.http: Exception during JSON request handling. 
..... 
ProgrammingError: el operador no existe: integer = boolean 
LÍNEA 1: SELECT "parent_id" FROM "res_company" WHERE "id" IN (false) 
+1

Nach der Verwendung von request.env [] müssen Sie .sudo() hinzufügen, das ist der erste Fehler, stellen Sie sicher, dass in E-Mail erhalten Sie Mail-Text und nicht anderes Objekt, auch Text in Unicode mit Dekodierfunktion konvertieren –

+0

Vielen Dank! Ihre Antwort war vollständiger, aber ich kann nicht als richtig wählen, es ist ein Kommentar –

Antwort

1

nur email.encode('utf-8') anstelle von email hier , da die E-Mail einen besonderen Charakter in Ihrem Fall haben.