2013-02-20 5 views
1

У меня есть категория модели:Категория из base.html на все виды?

class Category(models.Model): 
    name = models.CharField(max_length=255) 
    slug = models.SlugField() 

и я хочу в моей базе HTML есть список моей категории. Как сделать?

<ul> 
     <li class="category">Search Property</li> 

     {% for cat in category %} 
      <li class="category_link"><a href="/category/{{ cat.slug }}/">{{ cat.name }}</a></li> 
     {% endfor %}  
    </ul> 

views.py

def category(request): 
    category = Category.objects.all() 
    return render_to_response('base.html',{'category':category}, context_instance=RequestContext(request)) 

urls.py:

url(r'^cat/','content.views.category'), 
) 

Эта работа только в 127.0.0.1:8000/cat

мне это нужно в моем все виды (моя категория отображается в base.html). Как сделать?

+0

Если вам это нужно во всех представлениях, я бы использовал промежуточное ПО, чтобы «ввести» его и добавить его на ваш сеанс, а затем извлечь его оттуда в ваш «base.html» –

+0

Звучит неплохо, как добавить эту функцию в промежуточное программное обеспечение? – user2090552

+0

https://docs.djangoproject.com/ru/dev/topics/http/middleware/#writing-your-own-middleware - здесь ya go –

ответ

3

Вы можете использовать теги шаблонов Django: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-tags

в приложение/templatetags/categories.py

from django.template.base import Library 

    register = Library() 


    @register.inclusion_tag('path/to/template') 
    def categories(): 

     categories = Category.objects.all() 
     return {'categories': categories,} 

В HTML

{% load categories %} 

и где вы хотите включить Tha категории

{% categories %} 
2

Напишите context processor, который возвращает список категорий. Что-то же просто, как это должно работать:

def all_categories(request): 
    return {'ALL_CATEGORIES': Category.objects.all()} 

и добавить его в настройки TEMPLATE_CONTEXT_PROCESSORS.

Обратите внимание, что при этом ALL_CATEGORIES будет доступен в каждом контексте шаблона, который использует RequestContext.

Смежные вопросы