
    jg                     n    d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ  G d d	e      Zy)
    N)defaultdict)apps)settings)BaseCommandCommandError)models)signalcommandc                        e Zd ZdZed        Zy)CommandzQPrints a list of all files in MEDIA_ROOT that are not referenced in the database.c           
         t        t        d      st        d      t               }t	        j
                  t        j                        D ]Y  \  }}}|D ]N  }|j                  t        j                  j                  t        j                  j                  ||                   P [ t        t              }t        j                         D ]V  }	|	j                  j                   D ];  }
t#        |
j$                  t&        j(                        s(||	   j+                  |
       = X t               }|D ]  }	|	j,                  j/                         j1                         }|D ]]  }||	   D ]S  }
t        ||
j2                        }|s|j                  t        j                  j                  |j                               U _  ||z
  }|D ]  }t5        |        y )N
MEDIA_ROOTz$MEDIA_ROOT is not set, nothing to do)getattrr   r   setoswalkr   addpathabspathjoinr   listr   
get_models_metafields
issubclass	__class__r   	FileFieldappendobjectsalliteratornameprint)selfargsoptionsmediarootdirsfilesf
model_dictmodelfield
referencedr   objecttarget_filenot_referenceds                   s/var/www/html/Stanley/venv/lib/python3.12/site-packages/django_extensions/management/commands/unreferenced_files.pyhandlezCommand.handle   sa   x.EFF !#)<)<!=D$		"''//"'',,tQ*?@A  "> !&
__&E++eoov/?/?@u%,,U3 , ' U
E--##%..0C'.E")&%**"=K""rww{7G7G'HI /    +A!H      N)__name__
__module____qualname__helpr	   r3    r4   r2   r   r      s    ^D r4   r   )r   collectionsr   django.appsr   django.confr   django.core.management.baser   r   	django.dbr   "django_extensions.management.utilsr	   r   r9   r4   r2   <module>r@      s&    	 #    A  <#k #r4   