class EventInline(admin.TabularInline): model = Event fields = ["temps","tipus","jugador","equip"] ordering = ("temps",) def formfield_for_foreignkey(self, db_field, request, **kwargs): if "object_id" not in request.resolver_match.kwargs: # 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 = Partit.objects.get(id=partit_id) # Obtenim dos querysets amb els jugadors locals i visitants jugadors_locals = partit.local.jugadors.all() jugadors_visitants = partit.visitant.jugadors.all() # Fusionem els dos querysets amb | (= Union en BD) kwargs["queryset"] = jugadors_locals | jugadors_visitants return super().formfield_for_foreignkey(db_field, request, **kwargs)