从某个星期开始,我开始使用 django。现在我想使用django-sitetree通过我的模型创建导航栏。但是我对站点树的定义有疑问。例如,我想创建以下菜单结构:
maintree
|
|-- Media
| |-- Movies
| | |-- Life of Pi
| | |-- Django unchained
好的。所以我创建了以下简单模型:
class Movies(models.Model):
title = models.CharField(max_length=50)
为了测试站点树,我通过 django 管理站点添加了诸如“Pi Life of Pi”之类的数据集。
但是,现在我尝试使用https://django-sitetree.readthedocs.org/en/v0.9/quickstart.html中的入门文档并修改我的模型。
在 Django 管理站点中,我执行了以下步骤:
- 首页 › Sitetree --> 添加站点树
- 标题 = 主树
- 别名 = 主树
- 主页 › Sitetree › Site Trees › maintreeHome › Sitetree › Site Trees › maintree --> 添加站点树项
- 父母 = 没有父母 (-----)
- 标题 = 媒体
- 网址 = /考试
- 主页 › Sitetree › Site Trees › maintreeHome › Sitetree › Site Trees › maintree --> 添加站点树项
- 家长 = 媒体
- 标题 = 电影 # {{movie.id}}
- URL = 电影详细电影.title
- “附加设置”:检查“URL as Pattern”是否也已设置
好的,下一步是编写一个如下所示的 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'}。
所以现在我不确定出了什么问题。我希望有人可以帮助我解决这个问题,或者建议我另一个应用程序或方法来获得这样一个带有面包屑的导航树。
谢谢