【问题标题】:Running virtualenv on Django app kills my urls在 Django 应用程序上运行 virtualenv 会杀死我的网址
【发布时间】:2012-08-31 21:28:29
【问题描述】:

我有一个功能齐全的 Django 项目(不在 virtualenv 中),它具有类似的 url 模式

url(r'^$', 'myapp.views.Dashboard', name="dashboard"),

在模板中使用

{% url 'dashboard' %}

我正在将它移动到虚拟环境中,但是当我使用 source venv/bin/activate 激活 venv 时,我所有的 URL 标签都会给出

NoReverseMatch at /
Reverse for ''dashboard'' with arguments '()' and keyword arguments '{}' not found.

如果我删除单引号,它会删除此错误,例如{% url dashboard %} 很好。但是,如果没有这些引号,当 virtualenv 被停用时,project-create 之类的 URL 会失败。

任何想法我应该看什么?应该删除所有引号并重命名我的复合网址(例如project-create ==> ProjectCreate)?

谢谢!

【问题讨论】:

  • 你能确定你在 virtualenv 中使用的 django 版本与在它之外使用相同吗?
  • 是的,这是我在诊断此问题时尝试的第 97 次瘦... :) 使用相同的要求 txt 在系统和虚拟环境上重新安装了 django
  • 尝试使用 debug=true 并查看错误给出的 url。另外,将屏幕截图粘贴到某个地方,以便我们也可以查看。
  • 调试已经为真......它发生在 any 命名的 URL 中,其中名称在 URL 模板标记中被单引号引起来。

标签: django django-templates virtualenv django-urls


【解决方案1】:

试着用双引号代替单引号,看看它是否有效。正如这里提到的 https://stackoverflow.com/a/854446/808236

【讨论】:

  • 还是谢谢 - 我已经尝试过了,但这并不能解决 NoReverseMatch 问题。 (链接的SO帖子双引号参数不是url)。我想我只需要删除单引号并重命名失败的网址。与此同时,我可能会在 django-users 组上发布一个错误。
猜你喜欢
  • 1970-01-01
  • 2013-07-09
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多