Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

ValueError at /perfis/2 need more than 1 value to unpack

Boa noite. Antes da duvida principal...:Não seria melhor um form para gravar os perfis no banco?

Eu obtive esse erro ai. Alguém sabe o que houve?

ValueError at /perfis/2
need more than 1 value to unpack

html:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <h1>Django</h1>
    {% if perfis %}
    <ul>
        {% for perfil in perfis %}
        <li>
        <a href="/perfis/{{perfil.id}}"> {{ perfil.nome}} / {{perfil.email}} </a>
        </li>
        {% endfor %}
    </ul>
    {% else %}
    <p>nada</p>
    {% endif %}
</body>
</html>

views

from django.shortcuts import render
from perfis.models import Perfil

# Create your views here.

def index(request):
    return render (request,'index.html', {'perfis' : Perfil.objects.all()})

def exibir(request, perfil_id):
    perfil =  Perfil.objects.get(perfil_id)
    return render (request, 'perfil.html', {'perfil' : perfil})
1 resposta

Olá Marcos, tudo bom? Nunca mexi com Django, então tive que sair testando algumas coisas.

Baixei o projeto da aula 5, corrigi os erros de compatibilidade entre as versões e nos testes que fiz aqui, precisei utilizar o nome do atributo pra buscar no banco:

Perfil.objects.get(id=perfil_id)

Tente fazer assim, utilizando id= na query e veja se dá algum resultado? No projeto está assim, me parece que você não fez exatamente igual e pode ser que o django não lide bem com passar o parâmetro na query sem um nome.

Qualquer coisa volta aqui e a gente tenta outras alternativas!