bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


django_lliga

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
django_lliga [2026/03/10 16:03]
enric_mieza_sanchez [Implementar admin panel]
django_lliga [2026/03/10 17:08] (actual)
enric_mieza_sanchez [Implementar admin panel]
Línia 127: Línia 127:
 Vigileu, però, la versió de la documentació que consulteu. Vigileu, però, la versió de la documentació que consulteu.
  
 +<WRAP todo>
 Customitza les interfícies del //admin panel// per tal que puguis: Customitza les interfícies del //admin panel// per tal que puguis:
   * Partits:   * Partits:
Línia 138: Línia 139:
       * només mostri els jugadors dels dos equips del partit.       * només mostri els jugadors dels dos equips del partit.
       * només mostri els dos equips del partit.        * només mostri els dos equips del partit. 
 +</WRAP>
  
 {{ django:partit-event-inline.png }} {{ django:partit-event-inline.png }}
Línia 173: Línia 175:
 </file> </file>
  
-Podem millorar el EventInline restringint els jugadors que només ens mostri els dels equips del partit:+Podem millorar el ''EventInline'' restringint els jugadors que només ens mostri els dels equips del partit:
  
 <file python admin.py> <file python admin.py>
Línia 181: Línia 183:
     ordering = ("temps",)     ordering = ("temps",)
     def formfield_for_foreignkey(self, db_field, request, **kwargs):     def formfield_for_foreignkey(self, db_field, request, **kwargs):
-        # filtrem els jugadors i només deixem els que siguin d'algun dels 2 equips (local o visitant) +        if "object_id" not in request.resolver_match.kwargs: 
-        if db_field.name == "jugador":+            # si no hi ha "object_id" no fem res (sol cridar-se en el "add Partit" 
 +            pass 
 +        elif db_field.name == "jugador": 
 +            Filtrem els jugadors i només deixem els que siguin d'algun dels 2 equips (local o visitant)
             partit_id = request.resolver_match.kwargs['object_id']             partit_id = request.resolver_match.kwargs['object_id']
             partit = Partit.objects.get(id=partit_id)             partit = Partit.objects.get(id=partit_id)
-            # fem un queryset per cada equip+            # Obtenim dos querysets amb els jugadors locals i visitants
             jugadors_locals = partit.local.jugadors.all()             jugadors_locals = partit.local.jugadors.all()
             jugadors_visitants = partit.visitant.jugadors.all()             jugadors_visitants = partit.visitant.jugadors.all()
-            # fusionem els querysets amb l'operador | (= union en BD)+            # Fusionem els dos querysets amb | (= Union en BD)
             kwargs["queryset"] = jugadors_locals | jugadors_visitants             kwargs["queryset"] = jugadors_locals | jugadors_visitants
         return super().formfield_for_foreignkey(db_field, request, **kwargs)         return super().formfield_for_foreignkey(db_field, request, **kwargs)
 </file> </file>
 +
 +<WRAP todo>
 +Modifica el EventIinline perquè també filtri els equips que es mostren en el desplegable. Només ha de mostrar els dos equips que s'enfronten.
 +</WRAP>
  
 <-- <--
django_lliga.1773158613.txt.gz · Darrera modificació: 2026/03/10 16:03 per enric_mieza_sanchez