2

次のように、HTML 内で double を実行しようとしています。

{% for category in categories %}
            <li><a href="/categories/{{ category.id }}/">{{ category.name }}</a>
            {% for cat in category.objects.filter(parent=category.id) %}
                {% if forloop.first %} 
                <ul class="noJS">
                {% endif %}
                    <li><a href="/categories/{{ cat.id }}">{{cat.name}}</a></li> 
                </ul>
            {% endfor %}

            {% endfor %} 

問題は、エラーが発生していることです:

TemplateSyntaxError at /
Could not parse the remainder: '(parent=category.id))' from 'ca

tegory.objects.filter(parent=category.id))'
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 1.4.3
Exception Type: TemplateSyntaxError
Exception Value:    
Could not parse the remainder: '(parent=category.id))' from 'category.objects.filter(parent=category.id))'

何か案が?

4

3 に答える 3

1

考え:

models.py

class Category(models.Model):
    .........

    def data(self):
        return Category.objects.filter(id=self.id)

テンプレート

{% for category in categories %}
<li><a href="/categories/{{ category.id }}/">{{ category.name }}</a>
    {% for cat in category.data %}
        {% if forloop.first %} 
        <ul class="noJS">
        {% endif %}
            <li><a href="/categories/{{ cat.id }}">{{cat.name}}</a></li> 
        </ul>
    {% endfor %}
{% endfor %} 
于 2013-04-06T14:14:53.363 に答える
0

私は MPTT を使用しているので、子ノードのメソッドを呼び出すだけです。

        {% for cat in category.get_children %}

MPTTから入手可能

于 2013-04-30T01:04:21.290 に答える