
    9 f                     p    d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ d Z G d d	e          Zd
S )zModels.    )Assign
AssignNameClassDef)BaseChecker)BASE_ID)check_messages)node_is_subclassc                 |    |                                  D ]&}t          |t                    r|j        dk    r|c S 'd S )NMeta)get_children
isinstancer   name)nodechilds     R/var/www/equiseq/venv/lib/python3.11/site-packages/pylint_django/checkers/forms.py_get_child_metar   
   sJ    ""$$  eX&& 	5:+?+?LLL4    c                   N    e Zd ZdZdZde ddiZ ed          d             ZdS )	FormCheckerzDjango model checker.zdjango-form-checkerW04)z3Use explicit fields instead of exclude in ModelFormmodelform-uses-excludez`Prevents accidentally allowing users to set fields, especially when adding new fields to a Modelr   c                 ^   t          |dd          sdS t          |          }|sdS |                                D ]q}t          |t                    r t          |j        d         t                    s8|j        d         j        dk    r#|                     dt           d|            dS rdS )	zClass visitor.zdjango.forms.models.ModelFormz
.ModelFormNr   excluder   r   )r   )
r	   r   r   r   r   targetsr   r   add_messager   )selfr   metar   s       r   visit_classdefzFormChecker.visit_classdef   s      &E|TT 	Ft$$ 	F&&(( 	 	EeV,, Ju}Q?OQ[4\4\ }Q$	11  Wu === 2		 	r   N)	__name__
__module____qualname____doc__r   r   msgsr   r    r   r   r   r      s]         DG 
D ^,--  .-  r   r   N)r#   astroid.nodesr   r   r   pylint.checkersr   pylint_django.__pkginfo__r   pylint_django.compatr   pylint_django.utilsr	   r   r   r%   r   r   <module>r+      s     6 6 6 6 6 6 6 6 6 6 ' ' ' ' ' ' - - - - - - / / / / / / 0 0 0 0 0 0      +     r   