Карта сайта Django

категория: Django
Дали задание написать страничку "Карта сайта" для женского журнала. Там особо ничего сложного нету, всего одно главное меню, категории, и статьи в каждой категории. Но решил немного описать, мало ли кому пригодится в жизни, кто знает)) Ссылка на страницу с картой сайта:
url(r'^sitemap/$', 'core.views.sitemap'),
Во вьюшку передаем только категории и меню, статьи будем вытягивать из категорий:
def sitemap(request):
    menu = Menu.objects.all()
    categories = Category.objects.all()
    return render(request, "core/sitemap.html", {
		'menu': menu,
		'categories': categories
		})
Шаблон получился следующий:
{% for menu in menu %}
    <li><a href="/{{ menu.url }}">{{ menu.name }}</a></li>
{% endfor %}
<ul>
    {% for category in categories %}
        <li><a href="/{{ category.slug }}">{{ category.name|capfirst }}</a></li>
        <ul>
            {% for post in category.posts.all %}
                <li><a href="{{ post.get_absolute_url }}">{{ post.name }}</a></li>
            {% endfor %}
        </ul>
    {% endfor %}
</ul>
Про абсолютные ссылки get_absolute_url писал здесь. category.posts.all - потому что в модели связка через FK стоит related_name='posts', поэтому не category.post_set.all Получился вывод всех ссылок с сайта в виде вложенных списков.


blog comments powered by Disqus