3
g                 @   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   s0  t tdstdt }xDtjtjD ]4\}}}x(|D ] }|jtjj	tjj
|| q6W q&W tt}x>tj D ]2}	x,|	jjD ] }
t|
jtjr~||	 j|
 q~W qpW t }x^|D ]V}	|	jj j }xB|D ]:}x4||	 D ](}
t ||
j}|r|jtjj	|j qW qW qW || }x|D ]}t| qW d S )N
MEDIA_ROOTz$MEDIA_ROOT is not set, nothing to do)getattrr   r   setoswalkr
   addpathabspathjoinr   listr   Z
get_modelsZ_metafields
issubclass	__class__r   Z	FileFieldappendZobjectsalliteratornameprint)selfargsoptionsZmediarootdirsfilesfZ
model_dictmodelfieldZ
referencedr   objectZtarget_fileZnot_referenced r&   v/var/www/tester-filtro-web/env/lib/python3.6/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   