Projet

Général

Profil

Bug #84766

Lors d'import de rôles plutôt basique : « Role.MultipleObjectsReturned: get() returned more than one Role -- it returned 6! »

Ajouté par Sentry Io il y a 5 mois. Mis à jour il y a 5 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
14 décembre 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

Crash lors de l'import d'un JSON d'un Publik avec 3 rôles de base (agents, admin fonctionnel, debug EO).

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

Role.MultipleObjectsReturned: get() returned more than one Role -- it returned 6!
(12 additional frame(s) were not displayed)
...
  File "authentic2/data_transfer.py", line 293, in parentings
    parent = search_role(parent_d)
  File "authentic2/data_transfer.py", line 120, in search_role
    role = Role.objects.get_by_natural_key_json(role_d)
  File "authentic2/natural_key.py", line 121, in get_by_natural_key_json
    return self.get(**get_kwargs)
  File "django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "django/db/models/query.py", line 439, in get
    raise self.model.MultipleObjectsReturned(

Révisions associées

Révision 66919589 (diff)
Ajouté par Benjamin Dauvergne il y a 5 mois

data_transfer: handle MultipleObjectsReturned in search_role() (#84766)

Historique

#1

Mis à jour par Thomas Noël il y a 5 mois

  • Projet changé de Suivi des traces à Authentic 2
#3

Mis à jour par Benjamin Dauvergne il y a 5 mois

  • Assigné à mis à Benjamin Dauvergne
#4

Mis à jour par Benjamin Dauvergne il y a 5 mois

Le rôle recherché n'existe pas du tout mais get_by_natural_key_json a été pensé comme volontairement assez lâche en terme de précision pour pouvoir un peu importer n'importe quoi n'importe où (des rôles d'un ou dans une autre) et va au final juste chercher par slug et ou, ici ('_a2-hobo-superuser', 'default') le slug par défaut pour les rôles d'administrateurs des briques mais ce qui est recherché c'est le rôle "Administrateur des statistiques".

Tout ce que je peux faire ici, c'est constaté l’ambiguïté et lever une erreur propre qui indiquera que ce parent n'existe pas.

#5

Mis à jour par Robot Gitea il y a 5 mois

  • Statut changé de Nouveau à Solution proposée

Benjamin Dauvergne (bdauvergne) a ouvert une pull request sur Gitea concernant cette demande :

#6

Mis à jour par Robot Gitea il y a 5 mois

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

Serghei Mihai (smihai) a approuvé une pull request sur Gitea concernant cette demande :

#7

Mis à jour par Robot Gitea il y a 5 mois

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

Benjamin Dauvergne (bdauvergne) a mergé une pull request sur Gitea concernant cette demande :

#8

Mis à jour par Transition automatique il y a 5 mois

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

Mis à jour par Transition automatique il y a 2 mois

Automatic expiration

Formats disponibles : Atom PDF