0

{% load url from future %}名前空間の概念がどのように機能するかの例 (および簡単な説明) を誰かに見せてもらえますか?

私はpythonとdjangoが初めてで、ハードコードされたURLを作成しない方法と、reverse()などの他の関数の使用方法を学ぶ必要があります。

これが私がやろうとしていることの例です:

urls.py

urlpatterns = patterns('',
    """
      This one is what i did first but works with hardcoded url inside 
      top-navigator.html:
      url(r'^books/$', 'books.views.book_index'),

      The next one is what i'm trying to do:
      (but of course is not correct)
    """
    url(r'^books/$', include('books.views.book_index', namespace='books')),
)

トップ-navigator.html

サーバーを実行しようとすると、次のエラーが表示されます。

レンダリング中に ImportError がキャッチされました: book_index という名前のモジュールはありません

{% load url from future %}

<div class="navbar-inner">
<ul class="nav">
    <li class="active"><a href="/">Home</a></li>
    <li><a href="{% url 'books:book_index' %}">Books</a></li>
    <li><a href="/authors">Authors</a></li>
    <li><a href="/publishers">Publishers</a></li>
    <li><a href="/contact">Contact</a></li>
</ul>
</div>

すべてのリンクに対して同様のことを行うにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

0

名前空間とincludeステートメントを使用するには、別の urls.py ファイルをインポートする必要patternsがあります。

ここで行ったように、ビューだけを表示することはできませんinclude

コードを次のように変更します

{% url 'book_index' %}"

url(r'^books/$', 'books.views.book_index', name='books'))

または、説明目的で名前空間を使用するには:

more_patterns = patterns('',
    url(r'^$', 'book.views.book_index', name='book_index')),
)

urlpatterns = patterns('',
    url(r'^books/', include(more_patterns, namespace='books')),
                            #^^^^^^^ note you would normally use a string that points
                            #        to a python file containing urls.
)

{% url 'books:book_index' %} will now resolve.
于 2013-02-08T20:13:31.043 に答える