Skip to content

Instantly share code, notes, and snippets.

@richellyitalo
Last active April 8, 2019 01:53
Show Gist options
  • Save richellyitalo/0b56fea6f7496b78898c0c2f6ff6822f to your computer and use it in GitHub Desktop.
Save richellyitalo/0b56fea6f7496b78898c0c2f6ff6822f to your computer and use it in GitHub Desktop.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment