Bonjour a tous, dans ma fonction je fais une requête en BDD, j'aimerai que quand je compare les enregistrements ils soit comparé en minuscule.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
items = set(flatten(map(lambda k: Item.objects.filter(thesaurus__name__contains=k), keywords2)))
Ma variable keywords2 est déjà en minuscule via .lower().

Mais dans ma BDD j'ai des enregistrements qui sont en majuscule ou qui ont des lettres en majuscules et quand je fais ma requête sa ne me prend pas en compte ces enregistrement vu qu'ils sont ne sont pas similaire.

Est t'il possible dans la requête a la BDD de dire qu'il doit les comparé en minuscule du genre (je sais que sa marche pas c'est pour exemple) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
items = set(flatten(map(lambda k: Item.objects.filter(thesaurus__name__contains.lower()=k), keywords2)))
Ou avez vous une autre solutions?

Ma fonction complète :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
class ItemManager(models.Manager):
 
    def with_keywords(self, keywords):
        keywords2 = list(keywords)
        if not isinstance(keywords2, list):
            return []
        if not len(keywords2) > 0:
            return []
 
        items = set(flatten(map(lambda k: Item.objects.filter(thesaurus__name__contains=k), keywords2)))
        return items


Merci d'avances !!!!