2017-10-03 2 views
0

J'utilise simple-salesforce & django.SalesforceMalformedRequest Erreur lors de l'interrogation de la force de vente via Django

J'effectue une requête simple sur l'objet Account de Salesforce.

sf1 = Salesforce(connection parameters) 

sf8 = sf1.query("SELECT Id FROM Account WHERE Name = testname") 

Ici, testname est une variable qui contient la combinaison prénom + nom.

Je reçois l'erreur ci-dessous.

Exception Type: SalesforceMalformedRequest 

Exception Value:Malformed request https://cs90.salesforce.com/services/data/v38.0/query/?q=SELECT+Id+FROM+Account+WHERE+Name+%3D+testname. Response content: [{'message': '\nSELECT Id FROM Account WHERE Name = testname\n         ^\nERROR at Row:1:Column:36\nBind variables only allowed in Apex code', 'errorCode': 'MALFORMED_QUERY'}] 

Solution de contournement possible?

Répondre

0

Utilisez format pour générer la chaîne de requête

sf1.query("SELECT Id FROM Account WHERE Name ='{0}'".format(testname)) 

Assurez-vous testname type de variable doit être une chaîne

+0

est ce droit à utiliser l'opérateur de concaténation pour former une chaîne de requête? –

+0

@AvinashRaj J'ai mis à jour ma réponse, Comme il utilise python 'format' peut être utilisé mais pour la concaténation de chaîne' + 'est le seul moyen que je devine. – Satendra

+1

Merci @Satendra, Mon problème est résolu. –