U
    7h                     @   sh   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	 d	eZdS )
    N)defaultdict)apps)settings)BaseCommandCommandError)models)signalcommandc                   @   s   e Zd ZdZedd ZdS )CommandzQPrints a list of all files in MEDIA_ROOT that are not referenced in the database.c              
   O   s  t tdstdt }ttjD ]0\}}}|D ] }|tj	tj
|| q2q$tt}t D ].}	|	jjD ] }
t|
jtjrr||	 |
 qrqft }|D ]N}	|	j  }|D ]6}||	 D ](}
t ||
j}|r|tj	|j qqq|| }|D ]}t| qd S )N
MEDIA_ROOTz$MEDIA_ROOT is not set, nothing to do)getattrr   r   setoswalkr
   addpathabspathjoinr   listr   Z
get_models_metafields
issubclass	__class__r   Z	FileFieldappendobjectsalliteratornameprint)selfargsoptionsZmediarootdirsfilesfZ
model_dictmodelfieldZ
referencedr   objectZtarget_fileZnot_referenced r(   r/var/www/formularioweb/env/lib/python3.8/site-packages/django_extensions/management/commands/unreferenced_files.pyhandle   s,    
 zCommand.handleN)__name__
__module____qualname__helpr   r*   r(   r(   r(   r)   r	      s   r	   )r   collectionsr   Zdjango.appsr   Zdjango.confr   Zdjango.core.management.baser   r   Z	django.dbr   Z"django_extensions.management.utilsr   r	   r(   r(   r(   r)   <module>   s   