首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django Templatetags导入错误

Django Templatetags导入错误
EN

Stack Overflow用户
提问于 2012-05-30 15:29:44
回答 2查看 3.3K关注 0票数 0

我已经用头撞了一段时间了,但似乎想不出来了。我有一个带有自定义模板标记的应用程序:

代码语言:javascript
运行
复制
from django import template
from crowd.models import Payment, Project, ProjectCategory

register = template.Library()


@register.filter
def is_customer(user, project):
   try:
      return Payment.objects.filter(user=user, project=project).count() > 0
   except:
      return False

抛出:

代码语言:javascript
运行
复制
'project_tags' is not a valid tag library: ImportError raised loading crowd.templatetags.project_tags: No module named models

应用程序树看起来像:

代码语言:javascript
运行
复制
crowd/
   -- __init__.py
   -- models.py
   templatetags/
      -- __init__.py
      -- project_tags.py

从纯模型导入和从crowd.models导入都会给出相同的错误。

追溯:这里

更新

当我注意到它坏了的时候,我正在做一些不相关的事情,所以我回到了一个更早的,已知的项目工作版本。同样的问题,所以我认为丹尼尔斯关于PYTHONPATH的答案是正确的,但是,我如何修复这个问题呢?

代码语言:javascript
运行
复制
>>> import sys
>>> sys.path
['/Users/****/Documents/dev/product/src/Product', ...]

__init__..py‘s一直在那里,人群在Product中,所以它不应该在路上吗?

更新2

我在壳里做了一些调查:

代码语言:javascript
运行
复制
>>> from crowd.models import *
>>> from crowd.managers import *
>>> from crowd.constants import *
>>> from crowd.templatetags import *
>>> from crowd.templatetags import project_tags
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/Murph/Documents/dev/product/src/Product/crowd/templatetags/project_tags.py", line 4, in <module>
    from crowd.forms import SearchForm
  File "/Users/Murph/Documents/dev/product/src/Product/crowd/forms.py", line 5, in <module>
    from crowd.models import Payment, Project, ProjectUpdate, GalleryPhoto
ImportError: No module named models
>>> 

仍然不知道为什么这是具体的失败,特别是因为毛毯进口工作。

更新3

我花了一段时间才发现shell命令提供了比django命令更有用的信息,这导致了以下结果:

结果发现它甚至与project_tags没有直接关系,只是不是一个非常有用的错误消息。在project_tags.py中进口:

代码语言:javascript
运行
复制
 from crowd.forms import SearchForm

正在打电话:

代码语言:javascript
运行
复制
from crowd.models import Payment, Project, RewardLevel, ProjectUpdate, GalleryPhoto

在forms.py中,应该是:

代码语言:javascript
运行
复制
from models import Payment, Project, RewardLevel, ProjectUpdate, GalleryPhoto

如果可以的话,我会加上这个作为答案,显然要到8小时后才能回答。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-31 16:37:56

我花了一段时间才发现shell命令提供了比django命令更有用的信息,这导致了以下结果:

结果发现它甚至与project_tags没有直接关系,只是不是一个非常有用的错误消息。在project_tags.py中进口:

代码语言:javascript
运行
复制
 from crowd.forms import SearchForm

正在打电话:

代码语言:javascript
运行
复制
from crowdfunder.models import Payment, Project, RewardLevel, ProjectUpdate, GalleryPhoto

在forms.py中,应该是:

代码语言:javascript
运行
复制
from models import Payment, Project, RewardLevel, ProjectUpdate, GalleryPhoto
票数 1
EN

Stack Overflow用户

发布于 2012-05-30 15:48:44

您的crowd应用程序本身可能不在您的Pythonpath上。要么添加它,要么从项目导入:from myproject.crowd.models import Foo, Bar

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10819446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档