因为有一周我开始使用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管理站点内部,我执行了以下步骤:
好的下一步是编写一个如下所示的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 :(得分:0)
您忘了将movie
变量传递到模板中:即如果您这样做
Title = Movies # {{movie.id}}
您的观点应返回render(request, 'index.html', {'movie': my_movie})
之类的内容,其中my_movie
是您的Movie对象。也就是说,get
应该接受movie_title
arg,因为它放在你urlpatterns
中,这样你就可以从中推断出适当的Movie对象。