richellyitalo
3/3/2019 - 10:13 PM

Funções comuns

exibindo variáveis do usuário autenticado

username = request.POST.get('username')
password = request.POST.get('password')
# from django.contrib.auth import authenticate
user = authenticate(username=username, password=password)
if user:
  vars(user) # mostra as variáveis do 'user'

Definindo typehint

# sem
def login (request):

# com
def login(request: HttpResponseRedirect):

protegendo rotas

from django.contrib.auth.decorators import login_required

@login_required(login_url='/login/')
def panel(request):
  # ...

Condição ternária

return '' if registro.endereco is None else registro.endereco

Fixtures (dados de exemplo para aplicação)

my_app/fixtures/initial_data.json

[
  {
    "model": "my_app.address",
    "pk": 1,
    "fields": {
      "address": "Rua x",
      "address_complement": "",
      "city": "Minha cidade",
      "state": "SP",
      "country": "Brasil",
      "user": 1
    }
  }
]

Executar o comando para consumir os dados

py manage.py loaddata initial_data.json --app my_app

Para muitos de uma vez

py manage.py loaddata initial_data.json dados2.json dados3.json --app my_app

Gerando dados

py manage.py dumpdata auth.user > fixtures/auth.json

Ou completo py manage.py dumpdata > tudo.json

Em settings.py defina a pasta das fixtures raiz:

# ...
FIXTURE_DIRS = (
    os.path.join(BASE_DIR, 'fixtures'),
)

Agora é possível executar as fixtures da raiz sem precisar definir a app, logo essa pasta não está dentro de nenhuma app.

py manage.py load auth.json