Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

A receita criada pelo meu usuario não aparece

Boa noite! Estou realizando os estudos de Django e não consigo fazer aparecer as receitas criadas pelo usuário. Poderiam me ajudar por favor ?

usuarios/views.py

#Método Dashboard def dashboard(request): if request.user.is_authenticated:

    #puxar o usuário que cadastrou a receita 
    id = request.user.id
    receitas = Receita.objects.order_by('-data_receita').filter(pessoa=id)

    #Passar as receitas para o template 
    dados = { 
        'receitas':receitas
    }
    return render(request, 'usuarios/dashboard.html')
else:
    return redirect('index')

#Função Cria receira def cria_receita(request): if request.method == 'POST': nome_receita = request.POST['nome_receita'] ingredientes = request.POST['ingredientes'] modo_preparo = request.POST['modo_preparo'] tempo_preparo = request.POST['tempo_preparo'] rendimento = request.POST['rendimento'] categoria = request.POST['categoria'] foto_receita = request.FILES['foto_receita'] print(nome_receita, ingredientes, modo_preparo, tempo_preparo, rendimento, categoria, foto_receita)

    #Encontrar o user que está gerando a receita
    user = get_object_or_404(User, pk=request.user.id)

    #Associando a receita a pessoa logada. 
    receita = Receita.objects.create(pessoa= user, nome_receita = nome_receita, 
    ingredientes = ingredientes, modo_preparo = modo_preparo, tempo_preparo = tempo_preparo, 
    rendimento = rendimento, categorias = categoria, foto_receita = foto_receita)
    receita.save()

    #Volta para a dashboard para ver a receita criada
    return redirect('dashboard')
else:
    return render(request, 'usuarios/cria_receita.html')
2 respostas

receita/models.py

#Criar o modelo de receita


class Receita(models.Model):
    pessoa = models.ForeignKey(User, on_delete=models.CASCADE)
    nome_receita = models.CharField(max_length=200, blank=True)
    ingredientes = models.TextField()
    modo_preparo = models.TextField()
    tempo_preparo = models.IntegerField()
    rendimento = models.CharField(max_length=100)
    categorias = models.CharField(max_length=100)
    data_receita = models.DateTimeField(default=datetime.now, blank=True)
    foto_receita = models.ImageField(upload_to='fotos/%d/%m/%Y', blank=True) 
    publicada = models.BooleanField(default=False)
solução!

Faltou colocar no render os dados