o
    –¨Êh-
  ã                   @   sp   d dl Z e jdkrd dlmZ nd dlmZ e jdk r"d dlmZ nd dlmZ d dlm	Z	 G dd	„ d	eƒZ
dS )
é    N)é   é   )ÚBaseDatabaseValidation©r   é   )Úmodels)Úchecks)Ú
connectionc                       s6   e Zd Zejdk rdd„ Z‡  ZS ‡ fdd„Z‡  ZS )ÚDatabaseValidationr   c                 C   sZ   t jt jt jf}t||ƒr'|jdkr)|jr+d}| |||j|j	j
dœ ¡ dS dS dS dS )úÑ
            MySQL has the following field length restriction:
            No character (varchar) fields can have a length exceeding 255
            characters if they have a unique index on them.
            éÿ   zY"%(name)s": %(cls)s cannot have a "max_length" greater than 255 when using "unique=True".)ÚnameÚclsN)r   Ú	CharFieldÚCommaSeparatedIntegerFieldÚ	SlugFieldÚ
isinstanceÚ
max_lengthÚuniqueÚaddr   Ú	__class__Ú__name__)ÚselfÚerrorsÚoptsÚfÚvarchar_fieldsÚmsg© r   úS/var/www/html/env/lib/python3.10/site-packages/mysql/connector/django/validation.pyÚvalidate_field   s   þÿýz!DatabaseValidation.validate_fieldc                    s‚   t t| ƒj|fi |¤Ž}t|ddƒdu r?| t¡}|du r|S | d¡r?|jr?|jdu s3t	|jƒdkr?| 
tjdd|dd�¡ |S )r   ÚrelNÚvarcharr   zBMySQL does not allow unique CharFields to have a max_length > 255.z
mysql.E001)ÚhintÚobjÚid)Úsuperr
   Úcheck_fieldÚgetattrÚdb_typer	   Ú
startswithr   r   ÚintÚappendr   ÚError)r   ÚfieldÚkwargsr   Ú
field_type©r   r   r   r'   #   s*   ÿ

ÿ
ûÿ	zDatabaseValidation.check_field)r   Ú
__module__Ú__qualname__ÚdjangoÚVERSIONr    r'   Ú__classcell__r   r   r1   r   r
      s    
r
   )r4   r5   Ú"django.db.backends.base.validationr   Údjango.db.backendsÚ	django.dbr   Údjango.corer   r	   r
   r   r   r   r   Ú<module>   s   

