【问题标题】:Django Admin site TemplateSyntaxError at /admin/: name not defined/admin/ 处的 Django 管理站点 TemplateSyntaxError:未定义名称
【发布时间】:2010-01-18 12:36:43
【问题描述】:

我有一个问题,当我登录到 Django 管理站点时,我在 render_node 第 81 行的 /Library/Python/2.6/site-packages/django/template/debug.py 中收到模板语法错误。

我不知道如何解决这个问题,因为它是 Django 的一部分,我没有编写代码,也不知道它是如何工作的。

直到几天前我最后一次尝试它之前,它确实运行良好。

错误是: Caught an exception while rendering: name 'pest' is not defined 害虫是我的项目的名称。据我所知,我的项目中的所有应用程序都已正确安装。

提前致谢!

【问题讨论】:

  • 需要更多信息。 TemplateSyntaxError 的完整回溯通常包括真正存在问题的初始错误。添加完整的整个回溯和您的 admin.py 文件。
  • 我认为这个 admin.py 文件导致了这个问题,因为它是我唯一编辑过的文件。从 django.contrib 导入管理员从害虫.error_logging.models 导入错误 admin.site.register(Error)
  • 显示 installed_apps 设置
  • 为什么你在导入时使用项目名称?

标签: python django admin


【解决方案1】:

您的应用的 admin.py 文件中似乎有错误。

这可能是缺少导入,甚至是拼写错误,但没有任何代码就很难分辨。如果您能发布您的 admin.py 文件以便我们查看,那就太好了。

Django 中的TemplateSyntaxErrors 很糟糕,它们几乎从不告诉你真正的问题是什么。在这种情况下,例如,模板是 Django 的一部分,但错误可能是您的管理文件中的某些内容,Django 读取该文件以创建管理界面。回溯太深,无法立即找出代码中的问题所在。

【讨论】:

  • 谢谢,我会检查项目中所有的 admin.py 文件。这一定是我做过的事情,因为我根本没有编辑 Django 安装,它一直工作到今天。可惜今天写了 600 行,不知道是什么时候出错了。
  • @danpalmer 如果您正在使用任何 SCM,您可以及时返回并查看您何时损坏它,而不仅仅是找出有什么区别。无论如何,正如我所说,这很可能是拼写错误或导入错误。
  • 它在模板中的这一行失败:{% url django-admindocs-docroot as docsroot %} admin.py 文件(自上次工作以来我添加的那个)确实很基本:从 django.contrib 导入管理员从害虫.error_logging.models 导入错误 admin.site.register(Error)
  • @flavio-amieiro 我正在使用颠覆,但没有达到应有的水平,我认为这是我在项目中添加了一个全新的应用程序的大规模提交的一部分:(
  • @flavio-amieiro 另外,traceback 中有 28 项,都在 Django 代码中,而不是我自己的。
【解决方案2】:

事实证明这是一件相当简单的事情,我只是没有足够的 Python 经验,我在呼吁我的 .NET 经验。大错特错。

我调用了project.settings.SETTING,我应该在其中导入 project.settings,然后访问settings.SETTING

在 .NET 中,导入只是快捷方式,因此您不必键入函数或设置的整个“路径”,而在 Python 中,您似乎必须拥有自己的东西使用导入的。

我不知道这是否有意义,或者它是否正确,但它现在有效。感谢大家的帮助,你们总是一个很大的帮助,如果没有这里的资源,我将无法进行这项开发并提高我的知识。

【讨论】:

  • 您可以使用“from module import x”语法获取直接名称。
猜你喜欢
  • 2011-04-22
  • 2012-08-11
  • 2013-12-29
  • 2019-08-18
  • 2014-05-05
  • 2018-12-16
  • 1970-01-01
  • 2014-02-16
  • 2011-11-28
相关资源
最近更新 更多