
    Dh-
                         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	e      Z
y)
    N)      )BaseDatabaseValidationr      )models)checks)
connectionc                   J     e Zd Zej                  dk  rd Z xZS  fdZ xZS )DatabaseValidationr   c                 &   t         j                  t         j                  t         j                  f}t	        ||      rV|j
                  dkD  rF|j                  r9d}|j                  |||j                  |j                  j                  dz         yyyy)
            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msgs         a/var/www/html/civilisation/venv/lib/python3.12/site-packages/mysql/connector/django/validation.pyvalidate_fieldz!DatabaseValidation.validate_field   s     %..$??$..0N !^,1C<

4/0{{/C/C(E "E F IQ1C,    c                 N   t        t        | 
  |fi |}t        |dd      |j	                  t
              }||S |j                  d      rX|j                  rL|j                  t        |j                        dkD  r(|j                  t        j                  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_typer   s        r!   r+   zDatabaseValidation.check_field#   s     -t@ KCIKF ueT*2"]]:6
%!M)))4!LL"--5%()9)9%:S%@MM1!% %+ Mr#   )r   
__module____qualname__djangoVERSIONr"   r+   __classcell__)r   s   @r!   r   r      s    ~~	F 	 	r#   r   )r7   r8   "django.db.backends.base.validationr   django.db.backends	django.dbr   django.corer	   r
   r    r#   r!   <module>r?      s>    	>>VI9	>>F "$0/ 0r#   