
    ]j                     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                   b/root/env/lib/python3.12/site-packages/django_extensions/management/commands/unreferenced_files.pyhandlezCommand.handle   s   x.EFF !#)<)<!= 	BD$ B		"''//"'',,tQ*?@AB	B !&
__& 	4E++ 4eoov/?/?@u%,,U34	4 U
 	JE--##%..0C J'. JE")&%**"=K""rww{7G7G'HIJJ	J + 	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   