我有一个 django 模型查询,需要从特定表中获取不同的行,但由于某种原因它没有获取它。
让我知道你的输入
询问
Volunteercontacts.objects.order_by('name')- gives me the expected answer ie;ordering by name
Volunteercontacts.objects.order_by('name').distinct('name')- does not eliminate the duplicate
我有一个 django 模型查询,需要从特定表中获取不同的行,但由于某种原因它没有获取它。
让我知道你的输入
询问
Volunteercontacts.objects.order_by('name')- gives me the expected answer ie;ordering by name
Volunteercontacts.objects.order_by('name').distinct('name')- does not eliminate the duplicate
您应该区分不同的Volunteercontacts
模型和不同的name
列值。
对于不同的Volunteercontacts
模型,您可以使用 distinct(),但在这种情况下没有效果:
Volunteercontacts.objects.order_by('name').distinct()
对于不同的列值,您可以使用字典或值列表数组:
Volunteercontacts.objects.values_list('name',
flat=True).order_by('name').distinct()
另外,请记住,在 distinct 方法中指定字段名称的能力仅在 PostgreSQL 中可用。
Django 1.4 在原始问题中提供了预期的行为(假设您使用的是 Posgtres):
https://docs.djangoproject.com/en/1.4/ref/models/querysets/#distinct