Projet

Général

Profil

Development #59509

Page.MultipleObjectsReturned: get() returned more than one Page -- it returned 2!

Ajouté par Sentry Io il y a plus de 2 ans. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
09 décembre 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/54050/

Page.MultipleObjectsReturned: get() returned more than one Page -- it returned 2!
(9 additional frame(s) were not displayed)
...
  File "combo/data/utils.py", line 152, in import_site
    pages = Page.load_serialized_pages(data.get('pages') or [], request=request)
  File "combo/data/models.py", line 606, in load_serialized_pages
    page, created = Page.objects.get_or_create(slug=json_page['fields']['slug'])
  File "django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "django/db/models/query.py", line 538, in get_or_create
    return self.get(**kwargs), False
  File "django/db/models/query.py", line 412, in get
    (self.model._meta.object_name, num)

Fichiers

Révisions associées

Révision 6370164f (diff)
Ajouté par Valentin Deniaud il y a plus d'un an

data: handle duplicated page slugs at import (#59509)

Historique

#1

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

  • Projet changé de Suivi des traces à Combo
#2

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

2 pages avec le même slug
Il me semble avoir vu dans un ticket que ce cas était normal, qu'on ne voulait pas d'unicité sur les slugs, mais je ne le retrouve pas (et du coup je n'ai pas plus d'explication en tête)

#3

Mis à jour par Thomas Noël il y a plus de 2 ans

Vu de loin : deux pages pourraient avoir le même slug, placées à deux endroits différents de l'arborescence des pages.

#4

Mis à jour par Valentin Deniaud il y a plus de 2 ans

  • Assigné à mis à Valentin Deniaud
#5

Mis à jour par Valentin Deniaud il y a plus de 2 ans

#6

Mis à jour par Valentin Deniaud il y a plus de 2 ans

  • Statut changé de Solution proposée à En cours
#7

Mis à jour par Valentin Deniaud il y a plus de 2 ans

J'ai commencé à tirer une pelotte mais je la garde finalement pour un autre ticket.

#8

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

imaginons le cas suivant:
- sur un combo 1, créer 3 pages A, B, C, B et C étant filles de A, A n'ayant pas de parent (A > B et A > C)
- exporter le site
- l'importer sur un combo 2
- sur combo 1, déplacer C en dessous de B (A > B > C)
- exporter le site
- l'importer sur combo 2

avec le code précédent, on aurait bien déplacé la page C pour la mettre sous la page B
avec le patch, on crée une nouvelle page C sous B, l'ancienne page C restant sous A, non ?

#9

Mis à jour par Valentin Deniaud il y a plus de 2 ans

Lauréline Guerin a écrit :

imaginons le cas suivant:
[...]

avec le code précédent, on aurait bien déplacé la page C pour la mettre sous la page B
avec le patch, on crée une nouvelle page C sous B, l'ancienne page C restant sous A, non ?

Ouep, si on veut réparer le bug et garder ça il faut réfléchir à la manière dont on veut identifier les pages. J'imagine que c'est soit forcer l'unicité du slug, soit ajouter un champ uuid ?

#10

Mis à jour par Frédéric Péters il y a environ 2 ans

Je ne suis pas trop pour forcer l'unicité des slugs; je serais même à plutôt accepter ce ticket ainsi et ranger le cas #59509#note-8 dans un nouveau ticket, pour réfléchir uuid ou autre, sauf s'il y a déjà des idées assez claires pour partir là-dedans.

#12

Mis à jour par Nicolas Roche il y a presque 2 ans

Et donc ici, on pourrait juste afficher un message d'erreur à l'usager ?

#13

Mis à jour par Frédéric Péters il y a presque 2 ans

J'imagine que tu penses à un message qui dirait "Non ça va pas, slug en doublon", quelques commentaires plus haut le commentaire juste au-dessus j'écris "Je ne suis pas trop pour forcer l'unicité des slugs". (= pour être explicite : non il ne s'agit pas d'afficher un message d'erreur.).

#15

Mis à jour par Lauréline Guérin il y a plus d'un an

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

Mis à jour par Valentin Deniaud il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit 6370164fc86e223edde1146a86654d852f02db83
Author: Valentin Deniaud <vdeniaud@entrouvert.com>
Date:   Wed Dec 22 16:54:36 2021 +0100

    data: handle duplicated page slugs at import (#59509)
#17

Mis à jour par Transition automatique il y a plus d'un an

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

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF