需要帮助如何使用django-sitetree管理员配置

时间:2013-03-27 14:39:36

标签: django django-sitetree

因为有一周我开始使用django了。现在我想使用 django-sitetree 通过我的模型创建导航栏。但我对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. 主页> Sitetree - >添加站点树
    • Title = maintree
    • Alias = maintree
  2. 主页> Sitetree> Site Trees> maintreeHome> Sitetree> Site Trees> maintree - >添加站点树项
    • 父=没有父(------)
    • Title = Media
    • 网址= /考试
  3. 主页> Sitetree> Site Trees> maintreeHome> Sitetree> Site Trees> maintree - >添加站点树项
    • Parent = Media
    • 标题=电影#{{movie.id}}
    • 网址=电影详情movie.title
    • '其他设置':检查“网址为模式”也已设置
  4. 好的下一步是编写一个如下所示的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'}

    所以现在我不确定是什么问题。我希望有人可以帮助我解决这个问题,或者建议我另一个应用程序或方法来获得带有面包屑的导航树。

    由于

1 个答案:

答案 0 :(得分:0)

您忘了将movie变量传递到模板中:即如果您这样做 Title = Movies # {{movie.id}}您的观点应返回render(request, 'index.html', {'movie': my_movie})之类的内容,其中my_movie是您的Movie对象。也就是说,get应该接受movie_title arg,因为它放在你urlpatterns中,这样你就可以从中推断出适当的Movie对象。