代码之家  ›  专栏  ›  技术社区  ›  Stephen

在模板中分离多个字段

  •  1
  • Stephen  · 技术社区  · 15 年前

    跟随我的问题 link text 我想使用诸如内部、外部、机械等类别来分离模板中的功能。

    我正在尝试下面的代码,但显然它没有给我想要的。

    {% for feature in vehicle.features.all %}
        {% ifequal vehicle.features.type.type "Interior" %}
        <li>{{ feature }}</li>
        {% endifequal %}
    {% endfor %}
    

    我该怎么办?

    2 回复  |  直到 15 年前
        1
  •  1
  •   jcdyer Anand S Kumar    15 年前

    {% for feature in vehicle.features.all %}
        {% ifequal feature.type.type "Interior" %}
            <li>{{ feature }}</li>
        {% endifequal %}
    {% endfor %}
    

    ManyToManyRelatedManager Feature 特征 的关系。

    编辑:对于下面关于在视图上执行此操作的注释,您可以轻松执行以下操作:

    interior_features = vehicle.features.filter(type__type='Interior')
    

    并将内部特性直接传递到模板的上下文。作为模型上的一种方法,这实际上更有意义:

    def get_interior_features(self):
        return self.features.filter(type__type='Interior')
    

    当然,可以根据需要进一步过滤这一结果。

    options = vehicle.get_interior_features().filter(is_standard=False)
    

    或者什么的。

        2
  •  0
  •   samuraisam    15 年前

    使用Django的重新组合标记: http://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup

    最终可能会看起来像:

    {% regroup vehicle.features.all by type as vehicle_features %}
    
    {% for feature in vehicle_features %}
      {% ifequal feature "Interior" %}
         <li>{{feature}}</li>
      {% endifequal %}
    {% endfor %}