J'essaie de vérifier si les 3 premiers caractères d'un Charfield (charfield_1) sont similaires à un autre Charfield (charfield_2) du même modèle.
Essayé :
User.objects.filter(charfield_2__startswith=Substr('charfield_1', 1, 3))
J'ai essayé d'utiliser F et Func sans succès. Je continue à obtenir :
django.db.utils.DataError: invalid input syntax for integer: "1%"
LINE 1: ...CE(REPLACE((SUBSTRING("model_name"."charfield_2", '1%', 3)),...
Une idée de comment faire pour que cela fonctionne ? J'aimerais une solution utilisant l'ORM pour éviter les problèmes de performance.
Mise à jour :
Après avoir vérifié la requête générée par l'ORM et le message d'erreur, il semble que le deuxième paramètre Substr soit remplacé par un non-entier lorsque j'utilise l'expression de recherche startswith ou contains.
ex : Substr('charfield_1', 1, 3) est remplacé par Substr('charfield_1', '%1%', 3)
J'utilise la version 2.0.2.
Un ticket a été ouvert et accepté : https://code.djangoproject.com/ticket/29155