我是Django的新手,目前正在建立一个网站。我已下载django-wiki ver 0.4a3以获取我的网站的Wiki应用。一切正常,开箱即用。但是,如何将根文章显示为主页面,如何在根文章下显示所有文章的列表,以便用户只需点击任何子文章即可打开该文章?目前,用户必须单击菜单选项以浏览一个级别或浏览当前级别以获得该给定级别的所有文章的列表。我觉得这很乏味。我更喜欢“Windows资源管理器树和树枝”导航,例如,
root
|_child 1
| |_child 1.1
| |_child 1.2
|
|_child 2
| |_child 2.1
| |_child 2.1.1
|
|_child 3
请注意我问如何获取根文章下的所有文章的列表,而不是如何创建模板来实现树枝文章导航器。一旦我知道如何获得所有文章的列表,我想我可以实现必要的HTML和CSS来拥有那种导航器。我很欣赏任何指示。
P.S。我以前曾尝试过官方django-wiki google支持小组,但我认为那里的支持已经死了并且被埋没了。我的两个问题都没有回答,更不用说了(我只得到1个视图 - 这实际上是我的视图计数)。
克里斯。
答案 0 :(得分:0)
<强> [解决。] 强>
制作最初位于article.html
的{{1}}副本,并将此副本放在您自己项目的wiki/templates/wiki/
目录中。在要放置树目录的位置,添加如下行:
templates/wiki/
你可以看上面的代码。我是Django的新手(以及使用django-wiki),所以这可能不是最干净或最有效的方式,但上面的工作对我来说是预期的。
优势:
文章列表始终会更新,因此会删除所有已删除的文章,并会显示插入的新文章。
树状层次结构直观地显示了所有可用文章及其相互之间的关系。这种视觉描绘远远优于默认的,甚至很难知道存在多少篇文章或嵌套深度文章的深度。
缺点:
<!-- article.html -->
...
<h4>List of articles</h4>
<ul>
<!-- Need to get the first article (root) -->
{% url 'wiki:get' path=urlpath.root.path as rootpath %}
<li>
<a href="{{ rootpath }}">
{{ urlpath.root.article.current_revision.title }}
</a>
</li>
<!-- Now get all the descendent articles of the root -->
{% for child in urlpath.root.get_descendants %}
<!-- Don't list articles marked for deletion -->
{% if not child.is_deleted %}
{% with ''|center:child.level as range %}
{% for _ in range %}<ul>{% endfor %}
{% url 'wiki:get' path=child.path as childpath %}
<li>
<a href="{{ childpath }}">
{{ child.article.current_revision.title }}
</a>
</li>
{% for _ in range %}</ul>{% endfor %}
{% endwith %}
{% endif %}
{% endfor %}
</ul>
方法是一个昂贵的电话,但对于我的小网站,我没有注意到任何点击(到目前为止)。答案 1 :(得分:0)
假设您的结构深不超过10:
[article_list depth:10]
将此内容放入您的根文章中。