这个问题看起来很熟悉,所以我想我可以看看能否从有限的信息中进行复制。
快速搜索在James Bennett的博客中找到了一个条目,其中提到在使用UserProfile扩展User模型时,settings.py中的常见错误可能导致Django抛出此错误。
引用博客条目:
该设置的值不是“ appname.models.modelname”,而只是“ appname.modelname”。原因是Django没有使用它进行直接导入。相反,它使用内部模型加载功能,该功能仅需要应用程序的名称和模型的名称。尝试在AUTH_PROFILE_MODULE设置中执行“ appname.models.modelname”或“ projectname.appname.models.modelname”之类的操作会导致Django崩溃,并出现可怕的“太多值无法解包”错误,因此请确保您已经将“ appname.modelname”放在AUTH_PROFILE_MODULE的值中,不要输入其他任何内容。
如果OP复制了更多的回溯,我希望看到类似下面的内容,可以通过在我的AUTH_PROFILE_MODULE设置中添加“模型”来进行复制。
TemplateSyntaxError at /
Caught an exception while rendering: too many values to unpack
Original Traceback (most recent call last):
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/debug.py", line 71, in render_node
result = node.render(context)
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/debug.py", line 87, in render
output = force_unicode(self.filter_expression.resolve(context))
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/__init__.py", line 535, in resolve
obj = self.var.resolve(context)
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/__init__.py", line 676, in resolve
value = self._resolve_lookup(context)
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/__init__.py", line 711, in _resolve_lookup
current = current()
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/contrib/auth/models.py", line 291, in get_profile
app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
ValueError: too many values to unpack
我认为这是Django仍然具有一些导入魔术的少数情况之一,当小错误未引发预期的异常时,该魔术往往会引起混乱。
您可以在回溯结束时看到,我发布了如何对AUTH_PROFILE_MODULE使用除形式为“ appname.modelname”以外的任何内容会导致“ app_label,model_name = settings.AUTH_PROFILE_MODULE.split('。')”这一行引发“无法解包的值太多”错误。
我99%确信这是这里遇到的原始问题。