我需要帮助根据他们的类型在我的模型中显示汽车。 所有的车都有它们的类型,例如SUV,PICKUP等。 汽车应按类别显示, 所以在创建过程中所有类型都设置为SUV的车都应该在SUV下显示。 我看到内置的重新组合可以做到这一点,也检查了这个 SO post但仍然无法解决我的错误。
models.py
class CarType(models.Model):
type = models.CharField(max_length=200)
def __str__(self):
return self.type
class Car(models.Model):
name = models.CharField(max_length=30, null=False)
image = models.ImageField(upload_to="media")
type = models.ForeignKey(CarType)
views.py ``` class CarListView(ListView): model = Car queryset = Car.objects.all() context_object_name =' cars' urls.py
url(r'^', CarListView.as_view(), name='cars_list'),
模板
{% regroup cars by car.type as cars_by_type %}
<ul>
{% for car in cars_by_type %}
<li><h3 class="header">{{car.grouper}}</h3>
</h1>
<ul>
{% for item in cars_by_type.list %}
<li>{{ item.name }}</li>
<li>{{ item.price }}</li>
<li>{{ item.fuel_type }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
&#13;
答案 0 :(得分:1)
我相信您拨打regroup
时遇到一个小错误:您不需要cars.type
,只需type
。 Django期望“by”参数是“car”的属性并为您查找。
此更改将如下所示:
{% regroup cars by type as cars_by_type %}