【发布时间】:2018-04-13 22:39:12
【问题描述】:
我正在尝试查询一个有许多同名记录的表,这是故意的。在我的示例中,我使用的是汽车品牌,不幸的是我已经排除了使用外键的可能性。很长的故事。无论如何,我已经能够确定我可以使用 ModelChoiceField 并使用 distinct 命令来查询表,因为我正在使用 Postgresql,如下所示:
class Vehicle(forms.Form):
dropdown = forms.ModelChoiceField(queryset=Car.objects.none())
def __init__(self, *args, **kwargs):
super(Vehicle, self).__init__(*args, **kwargs)
self.fields['dropdown'].empty_label = ''
qs = Car.objects.distinct('vehicle_make')
上面的代码做了我需要的与下拉菜单相关的事情,它将 ModelChoiceField 限制为汽车的 vehicle_make 的唯一值。
挑战是当我尝试在我的模板中显示带有该 vehicle_make 的所有记录时。我试图做一个详细视图,但它只向我展示了那条记录。这是有道理的,因为详细视图仅适用于该记录,但我试图弄清楚如何查询表以向我显示带有该 vehicle_make 的所有记录。我也探索了 ChoiceField ,但似乎也无法让它发挥作用。我在模板中尝试了以下代码的几种变体,但似乎没有任何效果。
{% for vehicle_make in car.queryset %}
{{ vehicle_make }}
{% endfor %}
我的模型如下:
Car(models.Model):
vehicle_make = models.Charfield(max_length=264,unique=False)
def __str__(self):
return self.vehicle_make
提前感谢您的意见和建议。
【问题讨论】:
-
你也可以发布你的模型吗?
-
souldeux 有帮助吗?
标签: django python-3.x django-forms django-templates django-views