B
    Ñš[-
  ã               @   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 rDd 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                   s0   e Zd Zejdk rdd„ Zn‡ fdd„Z‡  ZS )ÚDatabaseValidation)r   r   c             C   sN   t jt jt jf}t||ƒrJ|jdkrJ|jrJd}| |||j|j	j
dœ ¡ dS )zÑ
            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   Z	CharFieldZCommaSeparatedIntegerFieldZ	SlugFieldÚ
isinstanceÚ
max_lengthÚuniqueÚaddr   Ú	__class__Ú__name__)ÚselfÚerrorsÚoptsÚfZvarchar_fieldsÚmsg© r   ú¥C:\Users\HIRONO~1\AppData\Local\Temp\pip-install-ioykiiwb\mysql-connector-python-rf\mysql_connector_python_rf-2.2.2.data\purelib\mysql\connector\django\validation.pyÚvalidate_field   s    z!DatabaseValidation.validate_fieldc                s~   t t| ƒj|f|Ž}t|ddƒdkrz| t¡}|dkr:|S | d¡rz|jrz|jdksbt	|jƒdkrz| 
tjdd|dd�¡ |S )zÑ
            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.
            ÚrelNZvarcharr
   zBMySQL does not allow unique CharFields to have a max_length > 255.z
mysql.E001)ZhintÚobjÚid)Úsuperr	   Úcheck_fieldÚgetattrZdb_typer   Ú
startswithr   r   ÚintÚappendr   ÚError)r   ÚfieldÚkwargsr   Z
field_type)r   r   r   r   #   s"    



zDatabaseValidation.check_field)r   Ú
__module__Ú__qualname__ÚdjangoÚVERSIONr   r   Ú__classcell__r   r   )r   r   r	      s   

r	   )r)   r*   Z"django.db.backends.base.validationr   Zdjango.db.backendsZ	django.dbr   Zdjango.corer   r   r	   r   r   r   r   Ú<module>   s   

