1
resposta

[Dúvida] Como fazer date_joined para meu fuso horário?

Gostaria que date_joined, na penúltima coluna da minha imagem, ficasse no GMT -3.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá! Tudo bem?

Para ajustar o campo date_joined para o fuso horário GMT -3, você pode utilizar a biblioteca pytz junto com o módulo timezone do Django. Vou te mostrar como fazer isso.

Primeiro, certifique-se de ter a biblioteca pytz instalada. Você pode instalá-la usando o pip:

pip install pytz

Em seguida, você pode ajustar o campo date_joined no momento da criação do usuário. Aqui está um exemplo de como fazer isso:

from django.utils import timezone
import pytz

def cadastro(request):
    form = CadastroForms()

    if request.method == 'POST':
        form = CadastroForms(request.POST)
        
        if form.is_valid():
            if form["senha_1"].value() != form["senha_2"].value():
                return redirect('cadastro')
                                
            nome = form['nome_cadastro'].value()
            email = form['email'].value()
            senha = form['senha_1'].value()

            if User.objects.filter(username=nome).exists():
                return redirect('cadastro')

            # Definindo o fuso horário para GMT -3
            fuso_horario = pytz.timezone('America/Sao_Paulo')
            data_atual = timezone.now().astimezone(fuso_horario)

            usuario = User.objects.create_user(
                username=nome,
                email=email,
                password=senha,
                date_joined=data_atual
            )
            usuario.save()
            return redirect('login')

    return render(request, 'usuarios/cadastro.html', {'form': form})

Neste código, estamos importando timezone do Django e pytz. Em seguida, definimos o fuso horário como America/Sao_Paulo, que corresponde ao GMT -3. Utilizamos timezone.now().astimezone(fuso_horario) para obter a data e hora atual no fuso horário desejado e passamos essa informação para o campo date_joined ao criar o usuário.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.