Project

General

Profile

Développement #59509

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

Added by Sentry Io about 3 years ago. Updated over 2 years ago.

Status:
Fermé
Priority:
Normal
Target version:
-
Start date:
09 December 2021
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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)

Files

Associated revisions

Revision 6370164f (diff)
Added by Valentin Deniaud over 2 years ago

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

History

#1

Updated by Lauréline Guérin about 3 years ago

  • Project changed from Suivi des traces to Combo
#2

Updated by Lauréline Guérin about 3 years ago

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

Updated by Thomas Noël about 3 years ago

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

#4

Updated by Valentin Deniaud about 3 years ago

  • Assignee set to Valentin Deniaud
#5

Updated by Valentin Deniaud about 3 years ago

#6

Updated by Valentin Deniaud about 3 years ago

  • Status changed from Solution proposée to En cours
#7

Updated by Valentin Deniaud about 3 years ago

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

#8

Updated by Lauréline Guérin about 3 years ago

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

Updated by Valentin Deniaud about 3 years ago

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

Updated by Frédéric Péters almost 3 years ago

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

Updated by Nicolas Roche over 2 years ago

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

#13

Updated by Frédéric Péters over 2 years ago

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

Updated by Lauréline Guérin over 2 years ago

  • Status changed from Solution proposée to Solution validée
#16

Updated by Valentin Deniaud over 2 years ago

  • Status changed from Solution validée to 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

Updated by Transition automatique over 2 years ago

  • Status changed from Résolu (à déployer) to Solution déployée
#18

Updated by Transition automatique over 2 years ago

Automatic expiration

Also available in: Atom PDF