Validação de dados em aplicações Django \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 16 Horas 

 35 Min 

 45 Seg 

   Tempo restante da oferta: 16 35 45 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Validação de dados em aplicações Django  [ Desenvolvimento Back-end ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento-back-end) [ Django ](https://www.treinaweb.com.br/blog/categoria/django) 

# Validação de dados em aplicações Django

 Aprenda como trabalhar com validação de dados em aplicações Django, utilizando validações padrões e customizadas.

 [ Cleyson Lima ](https://www.treinaweb.com.br/blog/autor/cleyson-lima) 2 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/09/04112944/DJANGO-PROJETOS-PYCHARM.png)  

A validação de dados é uma parte essencial no desenvolvimento de aplicações web, garantindo a integridade e a consistência das informações armazenadas no banco de dados. No Django, podemos realizar validações em diferentes camadas da aplicação, sendo as principais a camada de modelo e a camada de formulários.

 [ ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2023/06/sessao-mentoria.jpg) ](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?forma=cartao)

## Validação na camada de modelo

A camada de modelo do Django utiliza o ORM (Object-Relational Mapping) para definir as estruturas do banco de dados. Nesta camada, podemos definir validações através de atributos dos campos e de métodos personalizados.

### Validações padrão

O Django possui uma série de validações padrão que podem ser aplicadas aos campos do modelo. Por exemplo, podemos definir um campo `email` como único, garantindo que não existam registros duplicados no banco de dados.

```python
from django.db import models

class Usuario(models.Model):
    email = models.EmailField(unique=True)

```

Além disso, temos validações específicas para campos numéricos, datas, textos, entre outros. Para mais informações, consulte a [documentação oficial](https://docs.djangoproject.com/en/3.2/ref/models/fields/#field-options).

### Validações personalizadas

[  ![Django - Fundamentos](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/django.svg)   Curso Django - Fundamentos Conhecer o curso ](https://www.treinaweb.com.br/curso/django-fundamentos)

Caso as validações padrão não atendam às necessidades do projeto, podemos criar validações personalizadas através de métodos no modelo. Para isso, podemos utilizar o atributo `validators` dos campos do modelo.

Nele, definimos uma função ou uma classe que realiza a validação dos dados. Por exemplo, caso queiramos validar se um campo `idade` é maior que 18, podemos criar a seguinte função:

```python
from django.core.exceptions import ValidationError

def valida_idade_maior_que_18(value):
    if value
