¿Cómo podría implementar un filtro general dentro del administrador de django ?

Hola a todos.
Estoy empezando a desarrollar en Django y busco crear un sistema multiempresa para gestión administrativa.

En ese sentido necesito implementar un control de filtrado general en aquellas tablas que contengan ciertas llaves foráneas siendo la estructura de filtrado la siguiente:

País
Empresa
Establecimiento

He modificado algunas cosas en el administrador de django.

El código de mis modelos es el siguiente:

Models.py

from django.db import models
from django.utils import timezone
from smart_selects.db_fields import ChainedForeignKey
# Create your models here.

class Pais(models.Model):
    id= models.AutoField(primary_key=True)
    nombre = models.CharField(max_length=100,verbose_name='Nombre del Pais:')
    moneda = models.CharField(max_length=5,verbose_name='Moneda en circulacion:')
    bandera = models.ImageField(upload_to='imagenes/',verbose_name='Imagen de Bandera:', null=True)       
    
    class Meta:
        verbose_name = ('Pais')
        verbose_name_plural = ('Paises')

    def __str__(self) -> str:
        return "{}".format(self.nombre)
    
    
    def delete(self, using=None, keep_parents=False):
        self.bandera.delete()
        super().delete()

class Propietario(models.Model):        
    id= models.AutoField(primary_key=True)
    id_pais = models.ForeignKey(Pais,on_delete=models.CASCADE,verbose_name='Codigo de Pais')
    nombre = models.CharField(max_length=150,verbose_name='Nombre de Propietario')
    telefono = models.CharField(max_length=10,verbose_name='Numero de Telefono')
    correo = models.CharField(max_length=100,verbose_name='Correo de Contacto')

    class Meta:
        verbose_name = ('Propietario')
        verbose_name_plural = ('Propietarios')

    def __str__(self) -> str:
        return "{}".format(self.nombre)

class Empresa(models.Model):
    id= models.AutoField(primary_key=True)
    id_pais = models.ForeignKey(Pais,on_delete=models.CASCADE,verbose_name='Codigo de Pais')
    id_propietario = ChainedForeignKey(
        Propietario,
        chained_field="id_pais",
        chained_model_field="id_pais",
        show_all=False,
        auto_choose=True,
        sort=True)
    nombre = models.CharField(max_length=150,verbose_name='Nombre de Empresa')
    nombre_juridico = models.CharField(max_length=150,verbose_name='Nombre Juridico de Empresa')
    nit = models.CharField(max_length=20,verbose_name='NIT')
    direccion = models.CharField(max_length=250,verbose_name='Direccion Principal')
    numero_constitucion = models.CharField(max_length=10,verbose_name='Numero de Constitucion')
    fecha_constitucion = models.DateField(default=timezone.now(),verbose_name='Fecha de Constitucion') 
    fecha_inscripcion = models.DateField(default=timezone.now(),verbose_name='Fecha de Inscripion')
    correo = models.CharField(max_length=150,verbose_name='Correo de Contacto')
    telefono = models.CharField(max_length=10,verbose_name='Telefono de Contacto')

    class Meta:
        verbose_name = ('Empresa')
        verbose_name_plural = ('Empresas')


    def __str__(self) -> str:
        return "{}".format(self.nombre)  
    
class Establecimiento(models.Model):
    id= models.AutoField(primary_key=True)
    id_empresa = models.ForeignKey(Empresa,on_delete=models.CASCADE,verbose_name='Codigo de Empresa')
    numero = models.IntegerField(verbose_name='Numero de Establecimiento:')
    nombre = models.CharField(max_length=70,verbose_name='Nombre de Establecimiento:')
    fecha_apertura = models.DateField(default=timezone.now() ,verbose_name='Fecha de apertura:')
    direccion = models.CharField(max_length=150,verbose_name='Direccion de Establecimiento')

    class Meta:
        verbose_name = ('Establecimiento')
        verbose_name_plural = ('Establecimientos')

    def __str__(self) -> str:
        return "{}".format(self.nombre)
    
class ConfigSesion(models.Model):
    id = models.AutoField(primary_key=True)
    usuario = models.OneToOneField("auth.User", verbose_name=("user"), on_delete=models.CASCADE)
    id_pais = models.ForeignKey(Pais,on_delete=models.CASCADE,verbose_name='Pais:')
    id_empresa = ChainedForeignKey(
        Empresa,
        chained_field="id_pais",
        chained_model_field="id_pais",
        show_all=False,
        auto_choose=True,
        sort=True)
    id_establecimiento = ChainedForeignKey(
        Establecimiento,
        chained_field="id_empresa",
        chained_model_field="id_empresa",
        show_all=False,
        auto_choose=True,
        sort=True)
    
class UnidadMedida(models.Model):
    id = models.AutoField(primary_key=True)
    id_pais = models.ForeignKey(Pais,on_delete=models.CASCADE,verbose_name='Codigo de Pais')
    descripcion = models.CharField(max_length=50)

    class Meta:
        verbose_name =('Unidad de Medida')
        verbose_name_plural =('Unidades de Medida')
    
    def __str__(self) -> str:
        return "{}".format(self.descripcion)
    
class CategoriaProductos(models.Model):
    id = models.AutoField(primary_key=True)
    id_pais = models.ForeignKey(Pais,on_delete=models.CASCADE,verbose_name='Codigo de Pais')
    id_empresa = ChainedForeignKey(
        Empresa,
        chained_field="id_pais",
        chained_model_field="id_pais",
        show_all=False,
        auto_choose=True,
        sort=True)
    descripcion = models.CharField(max_length=100)

    class Meta:
        verbose_name = ('Categoria Productos')
        verbose_name_plural = ('Categorias Productos')

    def __str__(self) -> str:
        return "{}".format(self.descripcion)
    
class SubCategoriaProductos(models.Model):
    id = models.AutoField(primary_key=True)
    id_cat_prod =  models.ForeignKey(CategoriaProductos,on_delete=models.CASCADE,verbose_name='Categoria:')
    descripcion = models.CharField(max_length=100)

    class Meta:
        verbose_name = ('Sub Categoria Productos')
        verbose_name_plural =('Sub Categorias Productos')
    
    def __str__(self) -> str:
        return "{}".format(self.descripcion)
    
class Producto(models.Model):
    id = models.AutoField(primary_key=True)
    id_pais = models.ForeignKey(Pais,on_delete=models.CASCADE,verbose_name="Codigo de Pais")
    id_empresa = ChainedForeignKey(
        Empresa,
        chained_field="id_pais",
        chained_model_field="id_pais",
        show_all=False,
        auto_choose=True,
        sort=True)
    id_establecimiento = ChainedForeignKey(
        Establecimiento,
        chained_field="id_empresa",
        chained_model_field="id_empresa",
        show_all=False,
        auto_choose=True,
        sort=True)
    id_unidad_medida = ChainedForeignKey(
        UnidadMedida,
        chained_field="id_pais",
        chained_model_field="id_pais",
        show_all=False,
        auto_choose=True,
        sort=True)
    id_categoria = ChainedForeignKey(
        CategoriaProductos,
        chained_field="id_empresa",
        chained_model_field="id_empresa",
        show_all=False,
        auto_choose=True,
        sort=True)
    id_sub_categoria = ChainedForeignKey(
        SubCategoriaProductos,
        chained_field="id_categoria",
        chained_model_field="id_cat_prod",
        show_all=False,
        auto_choose=True,
        sort=True)
    codigo = models.CharField(max_length=30)
    descripcion = models.CharField(max_length=150)
    combustible = models.BooleanField(default=False)
    idp = models.FloatField()
    precio = models.FloatField()
    costo = models.FloatField()
    activo = models.BooleanField(default=True)

    class Meta:
        verbose_name = ('Producto')
        verbose_name_plural = ('Productos')
    
    def __str__(self) -> str:
        return "{}".format(self.descripcion)
    

Este es el codigo de mi Admin.py

from django.contrib import admin
from django.utils.html import format_html
from import_export.admin import ExportActionModelAdmin
#import resource
from .resource import PaisResource,PropietarioResource,EmpresaResource,EstablecimientoResource,ConfigSesionResource,UnidadMedidaResource,CategoriaProductosResource,SubCategoriaProductosResource,ProductoResource

#Import modelos
from .models import Pais
from .models import Empresa
from .models import Establecimiento
from .models import Propietario
from .models import ConfigSesion
from .models import UnidadMedida
from .models import CategoriaProductos
from .models import SubCategoriaProductos
from .models import Producto




# Register your models here.

admin.site.site_header = 'Bussines Admin'
admin.site.index_title = 'Panel Administrativo'
admin.site.site_title = 'Administrador Bussines'

class PaisResource(ExportActionModelAdmin):
     resource_class = PaisResource,  
     list_display = ("id","nombre","moneda","bandera","fotobandera")
     search_fields = ('id','nombre','moneda')
     ordering = ("id","nombre")
     icon_name = 'public'

     def fotobandera(self,obj):
          return format_html('<img src={} width="130" heidght="100" />',obj.bandera.url) 

class PropietarioResource(ExportActionModelAdmin):
     resource_class = PropietarioResource  
     list_display = ("id","id_pais","nombre","telefono","correo")
     search_fields = ("id","nombre","telefono","correo")
     autocomplete_fields = ["id_pais"]
     ordering = ("id","nombre")
     icon_name = 'person'


class EstablecimienoInline(admin.TabularInline):
    model = Establecimiento
#    readonly_fields = ["numero","nombre","fecha_apertura","direccion"]
    can_delete = False
    show_change_link = False
    show_save_link = True
    can_change = False
    extra = 0
    model = Establecimiento
    
class EmpresaResource(ExportActionModelAdmin):
     resource_class = EmpresaResource  
     list_display = ("id","id_pais","id_propietario","nombre","nombre_juridico","nit","direccion","numero_constitucion","fecha_constitucion","fecha_inscripcion","correo","telefono","sucursales")
     search_fields = ("id","id_pais","id_propietario","nombre","nombre_juridico","nit","direccion","numero_constitucion","fecha_constitucion","fecha_inscripcion","correo","telefono")
#    autocomplete_fields = ["id_pais","id_propietario"]
     ordering = ("id","nombre")
     icon_name = 'domain'
     fieldsets = (
        ('Datos Asignacion', {
            'fields': ( ('id_pais', 'id_propietario'))
        }),
        ('Datos Principales', {
            'fields': (("nombre","nombre_juridico"),("nit","direccion"),("numero_constitucion","fecha_constitucion","fecha_inscripcion"))
        }),
        ('Datos de Contacto', {
            'fields': (("correo","telefono"))
        }),
    
    )
     def sucursales(self,obj):
         numerosuc = obj.establecimiento_set.count()
         return numerosuc
     inlines = [
        EstablecimienoInline,
    ]



class EstablecimientoResource(ExportActionModelAdmin):
     resource_class = EstablecimientoResource  
     list_display = ("id",  "id_empresa","numero","nombre","fecha_apertura","direccion")
     search_fields = ("id","numero","nombre","fecha_apertura","direccion")
     list_filter = ("id_empresa" )
#     autocomplete_fields = ["id_pais","id_empresa"]
     ordering = ("id_empresa","numero")
     icon_name = 'map'

class ConfigSesionResource(ExportActionModelAdmin):
    resource_class = ConfigSesionResource
    list_display= ("id","usuario","id_pais","id_empresa","id_establecimiento")



class UnidadMedidaResource(ExportActionModelAdmin):
     resource_class = UnidadMedidaResource
     list_display = ("id", "descripcion")
     search_fields = ("id", "descripcion")
     list_filter = ("id", "descripcion" )
     ordering = ("id", "descripcion")
     icon_name = 'insert_chart'

class SubCategoriaProductoInline(admin.TabularInline):
    extra = 0
    model = SubCategoriaProductos

class CategoriaProductosResource(ExportActionModelAdmin):
     resource_class = CategoriaProductosResource  
     list_display = ("id","id_pais","id_empresa","descripcion","subcategorias")
     search_fields = ("id","descripcion")
#     autocomplete_fields = ["id_empresa"]
     ordering = ("id","id_empresa","descripcion")
     icon_name = 'list'
     
     def subcategorias(self,obj):
         numerocat = obj.subcategoriaproductos_set.count()
         return numerocat
     inlines = [
        SubCategoriaProductoInline,
    ]

class SubCategoriaProductosResource(ExportActionModelAdmin):
     resource_class = SubCategoriaProductosResource  
     list_display = ("id","id_cat_prod","descripcion")
     search_fields = ("id","descripcion")
#     autocomplete_fields = ["id_cat_prod"]
     ordering = ("id_cat_prod","descripcion")
     icon_name = 'line_style'

class ProductoResource(ExportActionModelAdmin):
     resource_class = ProductoResource  
     list_display = ("id","empresa","establecimiento","categoria","subcategoria","unidadmedida","codigo","descripcion","combustible","idp","precio","costo","utilidad")
     search_fields = ("id","codigo","descripcion")
     list_filter = ("id_pais", "id_empresa","id_establecimiento","id_unidad_medida","id_categoria","id_sub_categoria" )
     fieldsets = (
        ('Datos Asignacion', {
            'fields': ( 'id_pais', ('id_empresa',"id_establecimiento"))
        }),
        ('Clasificacion', {
            'fields': ("id_unidad_medida",("id_categoria","id_sub_categoria"))
        }),
        ('Datos Producto', {
            'fields': (("codigo","descripcion"),("combustible","idp"),("costo","precio"))
        }),
    ) 
#     autocomplete_fields = ["id_pais", "id_empresa","id_establecimiento","id_unidad_medida","id_categoria","id_sub_categoria"]
#     ordering = ("id_pais", "id_empresa","id_establecimiento","id_unidad_medida","id_categoria","id_sub_categoria","codigo")
     icon_name = 'local_grocery_store'
     def establecimiento(self, obj):
        return obj.id_establecimiento
     def empresa(self, obj):
        return obj.id_empresa
     def unidadmedida(self, obj):
        return obj.id_unidad_medida
     def categoria(self, obj):
        return obj.id_categoria
     def subcategoria(self, obj):
        return obj.id_sub_categoria
     def utilidad(self,obj):
         ganancia =round( (obj.precio - obj.costo),2)
         return ganancia
     


admin.site.register(Pais,PaisResource)
admin.site.register(Propietario,PropietarioResource)
admin.site.register(Empresa,EmpresaResource)
admin.site.register(ConfigSesion,ConfigSesionResource)
admin.site.register(UnidadMedida,UnidadMedidaResource)
admin.site.register(CategoriaProductos,CategoriaProductosResource)
admin.site.register(Producto,ProductoResource)

Basicamente necesito usar mi modelo ConfigSesion para controlar las variables que posteriormente serian los filtros de las demas tablas que contengan dichos campos.

Agregue unos Select en el administrador sin estar enlazados a datos aun para ejemplificar lo que busco.

<div id="container">

    {% if not is_popup %}
    <!-- Header aqui tambien -->
    {% block header %}
      <header id="header">
        <div id="branding">
                  
        {% block branding %}{% endblock %}        
        </div>
        {% block usertools %}
        
        {% if has_permission %}
        
        <div id="user-tools">
            {% block welcome-msg %}
                {% translate 'Bienvenido al Sistema Administrativo,' %}
                <strong>{% firstof user.get_short_name user.get_username %}</strong>.
                <br>
                <label for="pais">Pais:</label>
                  <select name="pais" id="pais">
                    <option value="1">Guatemala</option>
                    <option value="2">El Salvador</option>
                    <option value="3">Honduras</option>
                    <option value="4">Nicaragua</option>
                  </select>
                <label for="empresa">Empresa:</label>
                  <select name="empresa" id="empresa">
                    <option value="1">GAS MAYA SOCIEDAD ANONIMA</option>
                    <option value="2">GAS H SOCIEDAD ANONIMA</option>
                  </select>
                  <br>
                <label for="establecimiento">Establecimiento:</label>
                  <select name="empresa" id="empresa">
                    <option value="1">GAS MAYA JOCOTAN</option>
                    <option value="2">GAS MAYA CAMOTAN</option>
                  </select>
                  <br>
            {% endblock %}
            
            {% block userlinks %}
                {% if site_url %}
                    <a href="{{ site_url }}">{% translate 'View site ' %}</a> /
                {% endif %}
                {% if user.is_active and user.is_staff %}
                    {% url 'django-admindocs-docroot' as docsroot %}
                    {% if docsroot %}
                        <a href="{{ docsroot }}">{% translate 'Documentation' %}</a> /
                    {% endif %}
                {% endif %}
                {% if user.has_usable_password %}
                <a href="{% url 'admin:password_change' %}">{% translate 'Change password' %}</a> /
                {% endif %}
                <form id="logout-form" method="post" action="{% url 'admin:logout' %}">
                    {% csrf_token %}
                    <button type="submit">{% translate 'Log out' %}</button>
                </form>
                {% include "admin/color_theme_toggle.html" %}
            {% endblock %}
        </div>```

Espero haberme explicado de la mejor manera y que me puedan ayudar en esto.