【问题标题】:Need help how to use django-sitetree admin configuration需要帮助如何使用 django-sitetree 管理配置
【发布时间】:2013-03-17 16:46:27
【问题描述】:

自从某个星期以来,我开始使用 django。现在我想使用 django-sitetree 通过我的模型创建一个导航栏。但是我对站点树的定义有疑问。例如,我想创建以下菜单结构:

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

好的。所以我创建了以下简单模型:

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

为了测试站点树,我通过 django 管理站点添加了诸如“Pi 的生命”之类的数据集。

但是,现在我尝试使用来自 https://django-sitetree.readthedocs.org/en/v0.9/quickstart.html 的入门文档并修改我的模型。

在 Django 管理站点中,我执行了以下步骤:

  1. 首页 › 站点树 --> 添加站点树
    • 标题 = 主树
    • 别名 = 主树
  2. 首页 › Sitetree › Site Trees › maintreeHome › Sitetree › Site Trees › maintree --> 添加站点树项
    • 父母 = 没有父母 (------)
    • 标题 = 媒体
    • 网址 = /考试
  3. 首页 › 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'}

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

谢谢

【问题讨论】:

    标签: django django-sitetree


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 2020-09-11
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 2020-07-09
      相关资源
      最近更新 更多