python - 如何创建自定义 Django 过滤器标签

标签 python django

我无法让我的网站识别自定义模板标签。我有以下目录结构:

  • 项目名称
    • 项目名称
      • 模板标签
        • _ __init __ _.py
        • 获取属性.py
      • 观看次数
        • _ __init __ _.py
        • index.html
      • 观点
      • 设置.py
      • 主要文件
      • 管理.py
      • urls.py
    • nb项目

然后我将其添加到 INSTALLED_APPS:

INSTALLED_APPS = (
#    'django.contrib.auth',
    'django.contrib.contenttypes',
#    'django.contrib.sessions',
    'django.contrib.sites',
    'project_name'
)

然后我像这样在模板中引用它:

{% load getattribute %}
{%  for header in headers %}
    <td>{{ obj|getattribute:header }}</td>
{% endfor %}

我得到的错误如下:

Could not import controllers.EventController. Error was: No module named project_name

任何帮助将不胜感激:

TIA

安德鲁

更新:

该站点可以运行,但我无法使模板标签运行。如果我从 installed_apps 中删除 project_name,我会收到以下错误:

Exception Value: 'getattribute' is not a valid tag library: Could not load template library from django.templatetags.getattribute, No module named getattribute

最佳答案

错误是因为你的文件夹结构有误,我认为你必须阅读文档,这个tutorial (part1)解释正确的结构:

您有一个与应用程序不同的项目:

  • 项目名称
    • 应用名称
      • 模板标签
        • 获取属性.py
      • 模型.py
      • View .py
  • 设置.py
  • 管理.py

在您的INSTALLED_APPS中:

INSTALLED_APPS = (
#    'django.contrib.auth',
     'django.contrib.contenttypes',
#    'django.contrib.sessions',
     'django.contrib.sites',
     'project_name.app_name',
)

就是这样

关于python - 如何创建自定义 Django 过滤器标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081834/

相关文章:

python - 如何使用多重处理更快地迭代列表数据?

python - 如何在 Django 通用 ListView 类中使用 slugfield 创建链接?

python - ZeroMQ 中的锁定主题

python - 查询模板中与当前用户相关的项目

python - 使用选择创建自定义 Django CharField

Django:将对象从数据库导出到Excel

Python:尽管尝试了多种方法,ABP 位仍然没有翻转,如何修复?

python - 如何以图形方式编辑数学函数的图形(使用 python)?

django - 如何让用户在注册 Django Social-auth 时设置用户名?

即使没有实际的新迁移,Django 迁移命令也会卡在 Heroku 上