
    Ƿi
                     \    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	d Z
dS )	    )apps)CommandErrorLabelCommand)	force_str)signalcommandc                   .    e Zd ZdZd Zed             ZdS )Commandz>Outputs the specified model as a form definition to the shell.c                 v    |                     dt          d           |                     ddddg d	           d S )
Nlabelzapplication name and model name)typehelpz--fieldsz-fappendfieldsz$Describe form with these fields only)actiondestdefaultr   )add_argumentstr)selfparsers     k/srv/django_bis/venv311/lib/python3.11/site-packages/django_extensions/management/commands/describe_form.pyadd_argumentszCommand.add_arguments   s^    G#!B 	 	D 	D 	DXHb7 	 	
 	
 	
 	
 	
    c                 B    |d         }|d         }t          ||          S )Nr   r   )describe_form)r   argsoptionsr   r   s        r   handlezCommand.handle   s&     "UF+++r   N)__name__
__module____qualname__r   r   r   r    r   r   r	   r	   	   sC        KD
 
 
 , , ], , ,r   r	   c                    	 |                      d          dd         \  }}n$# t          t          f$ r t          d          w xY wt	          j        ||          }|j        }g }|j        |j        z   D ]/}|j	        s|r
|j
        |vr|                                }dt          |          vr=i }	g d}
|j                                        D ]i\  }}||
v r`|^|dk    r|r|dk    r|s|d	k    r|j        |	|<   .|d
v r2t!          t#          |                                                    |	|<   d||	|<   jd                    d t)          |	                                          D                       }|                    d|j
        |j        j        |dz             1d||j        d                    |          dz  S )z6 Return a string describing a form based on the model .Nz:Need application and model name in the form: appname.model__dict__)requiredinitial
max_length
min_length	max_value	min_value
max_digitsdecimal_placeschoices	help_textr   r'   r0   widget)r0   r   z, c                 "    g | ]\  }}|d |S )=r"   ).0kvs      r   
<listcomp>z!describe_form.<locals>.<listcomp>>   s'    OOOAqqq!!,OOOr   z5    %(field_name)s = forms.%(field_type)s(%(params)s))
field_name
field_typeparamsz
from django import forms
from %(app_name)s.models import %(object_name)s

class %(object_name)sForm(forms.Form):
%(field_list)s

)app_nameobject_name
field_list)split
IndexError
ValueErrorr   r   	get_model_metar   many_to_manyeditablename	formfielddirr&   items	__class__r   r   stripjoinsortedr   r   r=   )r   r   r<   
model_namemodeloptsr>   frG   attrsvalid_fieldsr5   r6   r:   s                 r   r   r      s7   Y${{3//4**
# Y Y YWXXXYN8Z00E;DJ[4,,  z 	 	afF**KKMM	S^^++ f  f  f&,,.. 	! 	!DAqL  Q]
??q?##A#== {E!HH000"9Q<<#5#5#7#788E!HH E!HOO9N9NOOOPPQ&#-6U
 U
 
 	 	 	 	
 D,<DIIV`LaLabbc cs	    # !AN)django.appsr   django.core.management.baser   r   django.utils.encodingr   "django_extensions.management.utilsr   r	   r   r"   r   r   <module>rX      s          B B B B B B B B + + + + + + < < < < < <, , , , ,l , , ,&.c .c .c .c .cr   