2013-03-27 42 views
0

因爲我已經開始使用django。現在我想用django-sitetree通過我的模型創建一個導航欄。但是我對sitetree的定義有問題。例如,我想創建以下菜單結構:需要幫助如何使用django-sitetree管理配置

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

好的。所以,我有以下創建簡單的模型:

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

爲了測試sitetree我添加的數據通過Django管理站點設置,如「Pi的生活」。

但是,現在我試圖從https://django-sitetree.readthedocs.org/en/v0.9/quickstart.html獲得啓動文檔,並修改了我的模型。

Django管理網站,我有執行下列步驟內幕:

  1. 首頁> Sitetree - >添加站點樹
    • 標題= maintree
    • 別名= maintree
  2. 首頁> Sitetree>網站樹> maintreeHome> Sitetree>網站樹> maintree - >添加網站樹項目
    • 父=無父(------)
    • 標題=媒體
    • URL = /考試
  3. 首頁> Sitetree>網站樹木> maintreeHome> Sitetree>網站樹木> maintree - >添加站點樹項目
    • 父=媒體
    • 標題=#電影{{movie.id}}
    • URL =電影詳細movie.title
    • 「其他設置」:選中「網址爲模式」已被設置得

好了,下一步就是編寫一個看起來像這樣的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> 

我的網址是這樣的:

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') 

的問題

最後我的問題是,結果是不同的,那麼我期望的。我只看到媒體和電影#,但沒有看到電影數據(餡餅和Django的生活解開了)。通過檢查視圖得到什麼作爲參數kwargs結果:{'movie_title':u'movie.title'}

所以現在我不知道什麼是錯的。我希望有人可以幫助我解決這個問題,或者建議我使用另一個應用程序或方法來獲得帶有面包屑的導航樹。

感謝

回答

0

你忘了通過movie變量到您的模板:即如果你這樣做 Title = Movies # {{movie.id}}您認爲應該返回類似render(request, 'index.html', {'movie': my_movie}),其中my_movie是你的電影對象。也就是說,get應該可以接受movie_title arg,因爲它會放在您的urlpatterns中,以便您可以從中推導出適當的Movie對象。