3

私のDjangoアプリを構築して、私はdjango-basic-app、特にアプリケーションのいくつかのコードを使用してい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、Python 2.7でDjango 1.4を使用しています

スタンドアロン アプリケーション (プロジェクトにリンクされていない) を使用しようとしていますが、ブログ アプリで検出されない理由がわかりません。インライン モデルは django によって検出されます。管理インターフェイスを使用して管理できますが、テンプレート タグだけが失敗します。

4

1 に答える 1

10

たとえば、inlines.pyモジュールの名前を変更してみてください。モジュールとパッケージが同じ名前にならないようにします。templatetags フォルダーからすべての古いファイルinlines_tags.pyを削除することを忘れないでください。*.pyc

于 2012-08-28T11:19:51.003 に答える