Я работаю над проектом в Django, и я только начал пытаться расширить модель User, чтобы создавать профили пользователей.
К сожалению, у меня возникла проблема: каждый раз, когда я пытаюсь получить профиль пользователя внутри шаблона ( user.get_template.lastIP
например), я получаю следующую ошибку:
Окружающая среда: Метод запроса: ПОЛУЧИТЬ URL-адрес запроса: http: // localhost: 8000 / Версия Django: 1.1 Версия Python: 2.6.1 Ошибка шаблона: В шаблоне /path/to/base.tpl ошибка в строке 19 Исключение при рендеринге: слишком много значений для распаковки 19: Здравствуйте, {{user.username}} ({{user.get_profile.rep}}). Как дела? Выйти Тип исключения: TemplateSyntaxError в / Значение исключения: обнаружено исключение при рендеринге: слишком много значений для распаковки
Есть идеи относительно того, что происходит или что я делаю не так?
Ответы:
Это исключение означает, что вы пытаетесь распаковать кортеж, но в кортеже слишком много значений по отношению к количеству целевых переменных. Например: эта работа и печатает 1, затем 2, затем 3
Но это вызывает вашу ошибку
повышения
Я не знаю, почему это происходит в вашем случае, но, возможно, этот ответ укажет вам правильное направление.
источник
obj='{"vendorId": "' + vID +'", "vendorName" :"'+vName+'", "addedDate" : "'+vAddedDate+'","usersList" : "'+ usersList + '," status" : "'+str(vStatus)+'","edit"'+edit+'"}';
хотя все значения являются строками, это дает мне ошибку, я запускаю ее в приглашении python, он работает, но при получении ответа из Интернета он дает мне это исключение. Подскажите, пожалуйста, что не так.tuple
что файл распаковывается. Это может быть любой тип последовательности. Это может допускать любой итеративный тип; Не могу вспомнить без промедления.попробуйте распаковать в одну переменную,
python обработает его как список,
затем распаковать из списка
источник
Эта проблема выглядела знакомой, поэтому я подумал, что посмотрю, смогу ли я воспроизвести ограниченный объем информации.
Быстрый поиск оказался запись в блоге Джеймса Беннетта здесь , где упоминается , что при работе с UserProfile расширить модель пользователя обычная ошибка в settings.py может привести к Джанго , чтобы бросить эту ошибку.
Чтобы процитировать запись в блоге:
Если бы OP скопировал больше трассировки, я ожидал бы увидеть что-то вроде той, что ниже, которую я смог продублировать, добавив «модели» к моей настройке AUTH_PROFILE_MODULE.
Я думаю, что это один из немногих случаев, когда в Django все еще есть немного магии импорта, которая имеет тенденцию вызывать путаницу, когда небольшая ошибка не вызывает ожидаемого исключения.
Вы можете видеть в конце трассировки, которую я опубликовал, как использование чего-либо, кроме формы «appname.modelname» для AUTH_PROFILE_MODULE, привело бы к тому, что строка «app_label, model_name = settings.AUTH_PROFILE_MODULE.split ('.')» Выбрасывала Ошибка "слишком много значений для распаковки".
Я на 99% уверен, что это была первоначальная проблема.
источник
AUTH_PROFILE_MODULE
в свойsettings.py
?Скорее всего, где-то в вызове get_profile () есть ошибка. На ваш взгляд, прежде чем вернуть объект запроса, поместите эту строку:
Это должно вызвать ошибку и дать вам более подробную трассировку, которую вы затем можете использовать для дальнейшей отладки.
источник
Такое случается со мной, когда я использую Jinja2 для шаблонов. Проблему можно решить, запустив сервер разработки с помощью
runserver_plus
команды из django_extensions .Он использует отладчик werkzeug, который также оказался намного лучше и имеет очень красивую интерактивную консоль отладки. Он делает некоторую магию ajax для запуска оболочки python в любом кадре (в стеке вызовов), чтобы вы могли отлаживать.
источник