Uso do valor padrão de nulo no modelo Django

Uso do valor padrão de nulo no modelo Django
O modelo é uma das partes significativas do aplicativo Django baseado em banco de dados. O modelo define a estrutura do banco de dados. O tipo de dados da tabela de banco de dados e a maneira de inserir dados com base em diferentes atributos são descritos no modelo. A validação de dados pode ser controlada usando o modelo também. Cada tabela no banco de dados contém um número específico de campos ou colunas. O modelo define o tipo de cada campo da tabela. O atributo padrão é usado no modelo para definir um valor padrão para uma área específica se o usuário para esse campo insira não dados. O valor padrão de um campo pode ser em branco ou qualquer valor específico. O nulo e em branco Os valores não são os mesmos. nulo é usado para definir que o valor vazio é permitido ou não para um campo específico. Se o nulo está configurado para Falso, Em seguida, a string vazia não será permitida no campo do tipo inteiro, mas a string vazia pode ser atribuída no campo tipo string. Se o nulo está configurado para Verdadeiro, então o valor nulo será fornecido no campo do tipo inteiro no lugar de uma corda vazia. BlanK é usado principalmente para a validação do formulário e não verifica o tipo de dados do campo. A maneira de usar padrão e nulo Atributos no modelo Django mostrou neste tutorial.

Pré -requisitos:

Antes de praticar o script deste tutorial, você deve concluir as seguintes tarefas.

A. Instale a versão Django 3+ no Ubuntu 20+ (de preferência)
B. Crie um projeto Django
C. Execute o servidor Django para verificar se o servidor está funcionando corretamente ou não.

Configure um aplicativo django:

A. Execute o seguinte comando para criar um aplicativo django nomeado DatabaseApp.

$ python3 gerencia.Py StartApp DatabaseApp

B. Execute o seguinte comando para criar o usuário para acessar o banco de dados Django. Se você concluiu o usuário antes, não precisa executar o comando.

$ python3 gerencia.py createSuperUser

C. Adicione o nome do aplicativo no Instalado_app parte das configurações.arquivo py.

Instalado_apps = [
..
'ValidationApp'
]

D. Crie uma pasta chamada modelos dentro de DatabaseApp pasta e defina o modelos Localização do aplicativo no MODELOS parte de configurações.py arquivo.

Modelos = [

.. .
'Dirs': ['/home/fahmida/django_pro/databaseApp/modsates'],
.. .
,
]

Modelo de design com atributos padrão e nulo:

Modifique o modelos.py Arquivo com o seguinte script para criar uma tabela chamada produtos que conterá quatro campos sem o campo de identificação. Esses Nomes, preço, manufatura_date e expira_date. O valor do nulo atributo está definido como true para todos os campos. O valor de o espaço em branco atributo está definido como true para todos os campos também. Isso significa que o usuário pode manter os campos em branco antes de enviar o formulário que usará este modelo. O padrão O valor do atributo está definido para o preço, Manufacturing_date e Expire_date.

modelos.py

# Módulo de modelos de importação
de Django.Modelos de importação de banco de dados
# Crie classe para definir a estrutura da tabela de professores
Produto de classe (modelos.Modelo):
nome = modelos.Charfield (max_length = 50, null = true, em branco = true)
Preço = modelos.Integerfield (null = true, default = ", em branco = true)
manufacturing_date = modelos.DateField (null = true, padrão = '0000-00-00', em branco = true)
expire_date = modelos.DateField (null = true, padrão = '0000-00-00', em branco = true)

Execute os seguintes comandos de migração para criar os arquivos de migração necessários e a tabela de banco de dados do banco de dados SQLite.

$ python3 gerencia.Py Makemigrations DatabaseApp
$ python3 gerencia.py migrar

Inserção de dados usando o painel da administração do Django:

Modificar o conteúdo de o administrador.py Arquivo com o script a seguir para registrar o modelo no banco de dados.

admin.py
Modifique o URLs.py Arquivo com o script a seguir para definir o caminho para abrir o painel administrativo do Django.

URLs.py

# Importar módulo de administrador
de Django.Contrible Import Admin
# Módulo de caminho de importação
de Django.URLs Caminho de importação
# Defina caminho para o cliente e administrador
urlpatterns = [
caminho ('admin/', admin.site.URLs)
]

Agora, execute o servidor Django e vá para o painel administrativo do Django usando o seguinte URL.

http: // lochist: 8000/admin

Abra o formulário de entrada do produto clicando Adicione o produto. Se o usuário enviar o formulário sem inserir dados, a saída a seguir aparecerá no navegador. Aqui, dois campos de data estão mostrando erros porque o valor padrão do campo de data não está em um formato válido.

A saída a seguir aparecerá após a adição dos dados de data válida. Aqui o preço O campo está em branco para usar o atributo padrão.

Inserção de dados usando o modelo:

A maneira de inserir dados no produtos tabela usando o formulário HTML foi mostrado nesta seção. Aqui, os elementos do formulário serão gerados com base no modelo que é criado anteriormente.

formas.py

# Módulo de formulários de importação
de formas de importação de django
# Importar modelo de cliente
de dbapp.Modelos Importar Produto
# Defina a classe para o formulário do cliente
Classe ProductForm (formulários.Modelform):
Meta da classe:
modelo = produto
campos = '__all__'

Crie o arquivo HTML nomeado produtos.html dentro de modelos Pasta do aplicativo com o seguinte script. Os dados do formulário serão enviados quando o usuário clicará no Salvar botão.

produtos.html

Formulário de entrada do cliente



% csrf_token %
forma.as_p

Modifique o Visualizações.py Arquivo com o seguinte script para inserir dados no produtos tabela depois de validar o formulário. AddProduct () A função é definida no script para verificar se o formulário é enviado ou não, e se o formulário for enviado, ele verificará os dados do formulário são válidos ou inválidos. Se é válido() função retorna verdadeiro, então os dados serão inseridos no produtos tabela e uma mensagem de sucesso será exibida no navegador.

Visualizações.py

# Importar módulo HTTPRESPONS
de Django.http.Resposta Importar httpResponse
# Importar módulo de renderização
de Django.Atalhos de importação renderizar
# Importar ProductForm
de dbapp.Formulários Importar ProductForm
# Defina a função para adicionar entrada do produto
Defe AddProduct (solicitação):
se solicitar.método == "post":
formulário = ProductForm (solicitação.PUBLICAR)
# Se os dados do formulário forem válidos ou não
se forma.é válido():
tentar:
# Salve os dados do formulário no banco de dados
forma.salvar()
# Defina a mensagem para o usuário
dados = ['

O produto adicionado.

']
# Retorne a resposta
Retornar httproponse (dados)
exceto:
passar
outro:
# Defina o objeto de formulário
formulário = ProductForm ()
# Mostre o formulário de entrada do produto
render renderização (solicitação, 'produto.html ', ' form ': form)

Modifique o URLs.py Arquive com o seguinte script para definir o caminho para chamar a função de visualização.

URLs.py

# Importar módulo de administrador
de Django.Contrible Import Admin
# Módulo de caminho de importação
de Django.URLs Caminho de importação
# Importar visualização
Das visualizações de importação do dbapp
# Defina caminho para o cliente e administrador
urlpatterns = [
caminho (", vistas.AddProduct),
caminho ('admin/', admin.site.URLs)
]

Agora, execute o servidor Django e abra o URL base no navegador.

http: // lochist: 8000/

O seguinte formulário aparecerá.

A seguir ValueError aparecerá se o usuário enviar o formulário sem adicionar dados no formulário. Aqui o preço Campo é um número inteiro que não pode ser a corda vazia.

Se o usuário inserir os dados válidos como o formulário abaixo e pressionar o Salvar Botão, um novo registro de produto será inserido no banco de dados.

A imagem a seguir aparecerá se você abrir o recorde recém -inserido do painel Django.

Conclusão:

Um modelo foi projetado usando atributos NULL e padrão neste tutorial. Em seguida, as maneiras de inserir dados nesses campos no back-end e no front-end mostraram aqui para ajudar o leitor a conhecer os usos de atributos padrão e nulos no banco de dados Django.