Estoy trabajando en un proyecto en Django y acabo de empezar a intentar extender el modelo de usuario para crear perfiles de usuario.
Desafortunadamente, me he encontrado con un problema: cada vez que intento obtener el perfil del usuario dentro de una plantilla ( user.get_template.lastIP
por ejemplo), aparece el siguiente error:
Ambiente: Método de solicitud: OBTENER URL de solicitud: http: // localhost: 8000 / Versión de Django: 1.1 Versión de Python: 2.6.1 Error de plantilla: En la plantilla /path/to/base.tpl, error en la línea 19 Se detectó una excepción al renderizar: demasiados valores para descomprimir 19: Hola, {{user.username}} ({{user.get_profile.rep}}). ¿Qué tal? Cerrar sesión Tipo de excepción: TemplateSyntaxError en / Valor de excepción: se detectó una excepción al renderizar: demasiados valores para descomprimir
¿Alguna idea de qué está pasando o qué estoy haciendo mal?
Respuestas:
Esa excepción significa que está intentando descomprimir una tupla, pero la tupla tiene demasiados valores con respecto al número de variables de destino. Por ejemplo: este trabajo e imprime 1, luego 2, luego 3
Pero esto plantea tu error
levanta
Ahora, la razón por la que esto sucede en su caso, no lo sé, pero tal vez esta respuesta le indique la dirección correcta.
fuente
obj='{"vendorId": "' + vID +'", "vendorName" :"'+vName+'", "addedDate" : "'+vAddedDate+'","usersList" : "'+ usersList + '," status" : "'+str(vStatus)+'","edit"'+edit+'"}';
aunque todos los valores son cadenas, me da un error, lo ejecuto en el indicador de Python, se está ejecutando, pero mientras recibo la respuesta de la web. me da esta excepción. ¿Puede sugerirnos qué va mal?tuple
se esté desempaquetando a. Puede ser cualquier tipo de secuencia. Podría permitir cualquier tipo iterable; No puedo recordarlo de improviso.intente desembalar en una variable,
Python lo manejará como una lista,
luego descomprime de la lista
fuente
Este problema parecía familiar, así que pensé en ver si podía replicar a partir de la cantidad limitada de información.
Una búsqueda rápida dio como resultado una entrada en el blog de James Bennett aquí que menciona que cuando se trabaja con UserProfile para extender el modelo de usuario, un error común en settings.py puede hacer que Django arroje este error.
Para citar la entrada del blog:
Si el OP hubiera copiado más del rastreo, esperaría ver algo como el que se muestra a continuación y que pude duplicar agregando "modelos" a mi configuración AUTH_PROFILE_MODULE.
Creo que este es uno de los pocos casos en los que Django todavía tiene un poco de magia de importación que tiende a causar confusión cuando un pequeño error no genera la excepción esperada.
Puede ver al final del rastreo que publiqué cómo el uso de cualquier otra cosa que no sea el formulario "appname.modelname" para el AUTH_PROFILE_MODULE haría que la línea "app_label, model_name = settings.AUTH_PROFILE_MODULE.split ('.')" Arrojara el Error "demasiados valores para descomprimir".
Estoy 99% seguro de que este fue el problema original encontrado aquí.
fuente
AUTH_PROFILE_MODULE
tusettings.py
?Lo más probable es que haya un error en algún lugar de la llamada a get_profile (). En su opinión, antes de devolver el objeto de solicitud, coloque esta línea:
Debería generar el error y brindarle un rastreo más detallado, que luego puede usar para depurar más.
fuente
Esto me sucede cuando uso Jinja2 para plantillas. El problema se puede resolver ejecutando el servidor de desarrollo usando el
runserver_plus
comando de django_extensions .Utiliza el depurador werkzeug, que también es mucho mejor y tiene una consola de depuración interactiva muy agradable. Hace algo de magia ajax para lanzar un shell de Python en cualquier marco (en la pila de llamadas) para que pueda depurar.
fuente