Django, fácil e rápido
Usuário
import os
import uuid
from django.db import models
from django.contrib.auth.models import AbstractUser
def image_path(instance, filename):
ext = filename.split('.')[-1]
filename = f'{uuid.uuid4()}.{ext}'
user= Account.objects.get(email=instance)
return f"accounts/{user.username}/avatars/{filename}"
class Account(AbstractUser):
email = models.EmailField(
max_length=255, unique=True, blank=False, null=False)
avatar = models.ImageField(
upload_to=image_path, default="default.png", blank=True, null=True)
email_notify = models.BooleanField("Notificação por email", default=True)
slug = models.SlugField(blank=True)
def save(self, *args, **kwargs):
if not self.slug:
self.slug = self.username
return super().save(*args, **kwargs)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username',]
def __str__(self):
return self.email
Com esse modelo já tem uma interface completa de usuários pelo Django, e para fazer o de exames, fica muito bom também.