Estou trabalhando em um projeto no Django e acabei de começar a tentar estender o modelo de usuário para fazer perfis de usuário.
Infelizmente, tive um problema: toda vez que tento obter o perfil do usuário dentro de um modelo ( user.get_template.lastIP
por exemplo), recebo o seguinte erro:
Meio Ambiente: Método de solicitação: GET URL de solicitação: http: // localhost: 8000 / Versão Django: 1.1 Versão Python: 2.6.1 Erro de modelo: No template /path/to/base.tpl, erro na linha 19 Detectou uma exceção durante a renderização: muitos valores para desempacotar 19: Olá, {{user.username}} ({{user.get_profile.rep}}). Como vai? Sair Tipo de exceção: TemplateSyntaxError em / Valor de exceção: detectou uma exceção durante a renderização: muitos valores para desempacotar
Alguma ideia do que está acontecendo ou o que estou fazendo de errado?
Respostas:
Essa exceção significa que você está tentando desempacotar uma tupla, mas a tupla tem muitos valores em relação ao número de variáveis de destino. Por exemplo: este trabalho, e imprime 1, depois 2, depois 3
Mas isso levanta o seu erro
levanta
Agora, a razão pela qual isso acontece no seu caso, eu não sei, mas talvez esta resposta o aponte na direção certa.
fonte
obj='{"vendorId": "' + vID +'", "vendorName" :"'+vName+'", "addedDate" : "'+vAddedDate+'","usersList" : "'+ usersList + '," status" : "'+str(vStatus)+'","edit"'+edit+'"}';
embora todos os valores sejam string, isso me dá um erro, eu executo no prompt do python, ele está em execução, mas enquanto recebo a resposta da web, me dá essa exceção. você pode sugerir o que está errado.tuple
está sendo descompactado. Pode ser qualquer tipo de sequência. Ele pode permitir qualquer tipo iterável; Não consigo me lembrar de improviso.tente descompactar em uma variável,
python vai lidar com isso como uma lista,
então descompacte da lista
fonte
Este problema parecia familiar, então pensei em ver se poderia replicar a partir da quantidade limitada de informações.
Uma rápida pesquisa revelou uma entrada no blog de James Bennett aqui que menciona que ao trabalhar com o UserProfile para estender o modelo de usuário, um erro comum em settings.py pode fazer com que o Django lance esse erro.
Para citar a entrada do blog:
Se o OP tivesse copiado mais do traceback, eu esperaria ver algo como o abaixo, que fui capaz de duplicar adicionando "modelos" à minha configuração AUTH_PROFILE_MODULE.
Acho que esse é um dos poucos casos em que o Django ainda tem um pouco de magia de importação que tende a causar confusão quando um pequeno erro não lança a exceção esperada.
Você pode ver no final do traceback que postei como usar qualquer coisa diferente do formulário "appname.modelname" para AUTH_PROFILE_MODULE faria com que a linha "app_label, model_name = settings.AUTH_PROFILE_MODULE.split ('.')" Para lançar o erro "muitos valores para desempacotar".
Tenho 99% de certeza de que esse foi o problema original encontrado aqui.
fonte
AUTH_PROFILE_MODULE
no seusettings.py
?Provavelmente há um erro em algum lugar na chamada get_profile (). Em sua opinião, antes de retornar o objeto de solicitação, coloque esta linha:
Ele deve gerar o erro e fornecer um rastreamento mais detalhado, que você pode usar para depurar posteriormente.
fonte
Isso acontece comigo quando estou usando o Jinja2 para modelos. O problema pode ser resolvido executando o servidor de desenvolvimento usando o
runserver_plus
comando de django_extensions .Ele usa o werkzeug depurador que também é muito melhor e tem um console de depuração interativo muito bom. Ele faz alguma mágica ajax para lançar um shell python em qualquer quadro (na pilha de chamadas) para que você possa depurar.
fonte