File: //usr/lib/python3/dist-packages/django/forms/__pycache__/models.cpython-310.pyc
o
3�a�� � @ s4 d Z ddlZddlmZ ddlmZmZmZmZ ddl m
Z
mZ ddlm
Z
mZ ddlmZmZ ddlmZ dd lmZmZmZmZ dd
lmZ ddlmZmZ ddlmZm Z! d
Z"dZ#d=dd�Z$d=dd�Z%dd� Z& d>dd�dd�Z'G dd� d�Z(G dd� de�Z)G dd� de
�Z*G dd � d e*e)d!�Z+e+dddddddddf
d"d#�Z,G d$d%� d%e�Z-e+de-d&d'd'ddddd'dddddd'dddfd(d)�Z.G d*d+� d+e-�Z/d?d,d-�Z0e+e/dddd.d'ddddd'dddddd'dddfd/d0�Z1G d1d2� d2e�Z2G d3d4� d4�Z3G d5d6� d6�Z4G d7d8� d8e
�Z5G d9d:� d:e5�Z6d;d<� Z7dS )@z[
Helper functions for creating Form classes from Django models
and database field objects.
� N)�chain)�NON_FIELD_ERRORS�
FieldError�ImproperlyConfigured�ValidationError)�ChoiceField�Field)�BaseForm�DeclarativeFieldsMetaclass)�BaseFormSet�formset_factory)� ErrorList)�HiddenInput�MultipleHiddenInput�RadioSelect�SelectMultiple)�RemovedInDjango40Warning)�capfirst�
get_text_list)�gettext�gettext_lazy)� ModelForm�
BaseModelForm�
model_to_dict�fields_for_model�ModelChoiceField�ModelMultipleChoiceField�
ALL_FIELDS�BaseModelFormSet�modelformset_factory�BaseInlineFormSet�inlineformset_factory�modelform_factory�__all__c C s� ddl m} |j}| j}g }|jD ]\}|jr!t||j�s!|j|vr"q|dur,|j|vr,q|r4|j|v r4q|� � rX| |j j
j�| j
| j| �|j��rX|�|j�| |j j
jv rXqt||j�rd|�|� q|�|||j � q|D ]}|�|||j � qp|S )z�
Construct and return a model instance from the bound ``form``'s
``cleaned_data``, but do not save the returned instance to the database.
r )�modelsN)� django.dbr$ �_meta�cleaned_data�fields�editable�
isinstance� AutoField�name�has_default�field�widget�value_omitted_from_data�data�files�
add_prefix�get�empty_values� FileField�append�save_form_data) �form�instancer( �excluder$ �optsr'