模板语法错误:inlines不是一个有效的标签库。

3

我正在构建我的Django应用程序,使用了来自django-basic-apps的一些代码,特别是inlines应用程序。

在我的blog应用程序中,我在模板中加载inlines(这里是在blog/templates/admin/blog/change_form.html中)

{% extends "admin/change_form.html" %}

{% block extrahead %}
  {% load adminmedia inlines %}
  {{ block.super }}

当我这样做时,会出现错误

/admin/blog/post/1/的TemplateSyntaxError

'inlines'不是一个有效的标签库:在加载inlines.templatetags.inlines时引发ImportError:没有名为models的模块

项目的结构如下

blog/
    templates/admin/blog/
                        change_form.html
    ...
inlines/
    __init__.py
    models.py
    templatetags/
           __init__.py
           inlines.py
    ...

inlines/templatetags/inlines.py中导入后,进行以下操作。
from django import template
from inlines.models import InlineType
from inlines.parser import inlines
import re

inlines出现在INSTALLED_APPS中,我正在使用Django 1.4和Python 2.7。

我试图创建一个独立的应用程序(不与项目相关),但我不明白为什么它不能被博客应用程序检测到。这些嵌入模型可以被Django检测到,并且我能够使用管理界面进行管理,只是templatetags无法正常工作。

1个回答

10

尝试将inlines.py模块重命名为inlines_tags.py,这样一个模块和一个包就不会同名。别忘了从templatetags文件夹中删除所有旧的*.pyc文件。


由于某种奇怪的原因,我的应用程序必须是INSTALLED_APPS中的第一个才能正常工作。 - Joaquín L. Robles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接