0

ある週から、django を使い始めました。今、django-sitetreeを使用して、モデルのナビゲーション バーを作成したいと考えています。しかし、サイトツリーの定義に問題があります。たとえば、次のメニュー構造を作成したいとします。

maintree
|
|-- Media
|   |-- Movies
|   |   |-- Life of Pi
|   |   |-- Django unchained  

わかった。だから私は次の単純なモデルを作成しました:

class Movies(models.Model):
    title = models.CharField(max_length=50)

sitetree をテストするために、django 管理サイトから「Life of Pi」のようなデータ セットを追加しました。

ただし、今はhttps://django-sitetree.readthedocs.org/en/v0.9/quickstart.htmlの取得開始ドキュメントを使用して、モデルを変更しようとしました。

Django 管理サイト内で、次の手順を実行しました。

  1. ホーム › サイトツリー --> サイトツリーを追加
    • タイトル = メインツリー
    • エイリアス = メインツリー
  2. ホーム › サイトツリー › サイト ツリー › maintreeHome › サイトツリー › サイト ツリー › メインツリー --> サイト ツリー アイテムを追加
    • 親 = 親なし (------)
    • タイトル = メディア
    • URL = /試験
  3. ホーム › サイトツリー › サイト ツリー › maintreeHome › サイトツリー › サイト ツリー › メインツリー --> サイト ツリー アイテムを追加
    • 親 = メディア
    • タイトル = 映画番号 {{movie.id}}
    • URL = 映画詳細 movie.title
    • 「追加設定」: 「パターンとしての URL」も設定されていることを確認します

次のステップは、次のような base.html を作成することでした。

{% load sitetree %}

<!DOCTYPE html>
<html>
<head><title>My test template</title></head>
<body>
    <b>Sitetree menu</b>
    {% sitetree_tree from "maintree" %}
    <b>Breadcrumbs</b>
    {% sitetree_breadcrumbs from "maintree" %}
</body>
</html>

私の URL は次のようになります。

from django.conf.urls import patterns, url
from exam.views import IndexView, DetailedMovie

urlpatterns = patterns('',
   url(r'^$', IndexView.as_view()),
   url(r'^(?P<movie_title>\S+)/$', DetailedMovie.as_view(), name='movie-detailed'),
)

そして、このようなビュー:

class DetailedMovie(TemplateView):
    template_name = "index.html"

    def get(self, request, *args, **kwargs):
        print 'DetailedMovie ---------------------'
        print args
        print kwargs

        return render(request, 'index.html')

問題

最後に、私の問題は、結果が予想と異なることです。Media と Movies # のみが表示されますが、Movie Data は表示されません (Life of pie と Django unchained)。ビューがパラメーターkwargsの結果として得たものを確認することにより: {'movie_title': u'movie.title'}

だから今、私は何が間違っているのか分かりません。誰かがこの問題を解決するのを手伝ってくれるか、ブレッドクラムでそのようなナビゲーション ツリーを取得する別のアプリや方法を提案してくれることを願っています。

ありがとう

4

1 に答える 1

0

テンプレートに変数を渡すのを忘れてmovieいます。つまり、変数 を渡すとTitle = Movies # {{movie.id}}、ビューは のようなものを返す必要render(request, 'index.html', {'movie': my_movie})my_movieあります。とは言っても、そこから適切な Movie オブジェクトを推測できるように、getおそらくmovie_titlearg を受け入れる必要があります。urlpatterns

于 2013-07-21T15:59:20.087 に答える