2

在 HTML 中,我尝试执行双重处理,第二个从父亲那里继承数据,如下所示:

{% 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

主意:

模型.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

因为你有一个关系,甚至是一个自引用的关系,你得到一个反向关系的访问器。如果你还没有设置related_name,那就是category_set。所以你可以这样做:

{% for cat in category.category_set.all %}
于 2013-04-06T17:00:06.243 回答
0

我正在使用 MPTT,所以我只为子节点调用一个方法:

        {% for cat in category.get_children %}

可从 MPTT 获得

于 2013-04-30T01:04:21.290 回答