Projet

Général

Profil

Development #46100

optimiser l'import de CSV d'événements sans slug

Ajouté par Frédéric Péters il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
25 août 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Là ça passe par generate_slug() qui fait une requête par valeur potentielle,

    while instance._meta.model.objects.filter(slug=slug, **query_filters).exists():
        slug = '%s-%s' % (base_slug, i)
        i += 1

et sur des événements qui n'ont pas de libellé,

    def base_slug(self):
        # label can be empty
        return slugify(self.label or ('%s-event' % self.agenda.label))

ça va partir à chaque fois de zéro.

Je serais pour avant de lancer les .save() faire un

seen_slugs = set(Event.objects.values_list('slug', flat=True))

puis passer ça à save() qui le passerait à generate_slug() qui l'utiliserait pour itérer sans s'arrêter sur les valeurs connues.

(un peu comme dans chrono/agendas/migrations/0049_event_slug.py)

Alternativement si on veut un truc qui tient dans generate_slug() seul, on pourrait se dire qu'après trois itérations ça va continuer ainsi et faire alors une requête globale pour obtenir tous les slugs.


Fichiers


Demandes liées

Lié à Chrono - Development #46098: faire les imports d'événements depuis un CSV de manière asynchroneNouveau25 août 2020

Actions

Révisions associées

Révision c9bbdf87 (diff)
Ajouté par Lauréline Guérin il y a plus de 3 ans

manager: slug generation optimization on event import (#46100)

Historique

#1

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Lié à Development #46098: faire les imports d'événements depuis un CSV de manière asynchrone ajouté
#3

Mis à jour par Lauréline Guérin il y a plus de 3 ans

  • Assigné à mis à Lauréline Guérin
#4

Mis à jour par Lauréline Guérin il y a plus de 3 ans

#5

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Solution proposée à Solution validée
#6

Mis à jour par Lauréline Guérin il y a plus de 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit c9bbdf87cbcb7f988d14f5e5a2b1c36d5597a86b
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Mon Aug 31 15:23:05 2020 +0200

    manager: slug generation optimization on event import (#46100)
#7

Mis à jour par Frédéric Péters il y a plus de 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF