1

私はカテゴリモデルを持っています:

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>

ビュー.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 に表示されます)。実行する方法?

4

2 に答える 2

3

Django テンプレート タグを使用できます: https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-tags

app/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 %}

カテゴリを含めたい場所

{% categories %}
于 2013-02-20T11:43:09.223 に答える
2

カテゴリのリストを返すコンテキストプロセッサを作成します。これと同じくらい単純なものが機能するはずです:

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

設定に追加しますTEMPLATE_CONTEXT_PROCESSORS

これを行う際に、 RequestContextALL_CATEGORIESを使用するすべてのテンプレートコンテキストで使用できることに注意してください。

于 2013-02-20T11:47:59.623 に答える