【问题标题】:django, a good way of querying a distinct modeldjango,一种查询不同模型的好方法
【发布时间】:2011-01-08 03:08:50
【问题描述】:

假设我有一个这样的模型:

class Foo(models.Model):
    name = models.CharField("ad",max_length=25)
    type = models.ForeignKey(Type)

所以在数据库中,我有 Foo 对象具有相同的名称字段但类型不同,即:

name type
A     1
A     2
B     1
C     2
A     3
B     3

我将使用这些信息来生成一个 html 选择表单,显示所有可能的(不同的)名称,所以最后我的选择表单将显示如下:

<select>
  <option value="A">A</option>
  <option value="B">B</option>
  <option value="C">C</option>
</select>

如何获取name 的不同值列表?

【问题讨论】:

  • 我是唯一一个在这里没有看到任何问题的人吗:)?
  • @Tomasz - 如果你找的话,那里有一个,我已经编辑了它以使其更明显。

标签: django django-views django-queryset


【解决方案1】:

在回答您对 Till 的后续问题时,一种更简单的方法是:

Foo.objects.values_list('name', flat=True).distinct().order_by('name')

【讨论】:

    【解决方案2】:
    Foo.objects.values('name').distinct().order_by('name')
    

    【讨论】:

    • 这似乎有效,但输出是这样的:{'name': u'A} {'name': u'B} {'name': u'C} 我该如何解决这个问题?
    • 我有这样的记录:names = [i["name"] for i in Foo.objects.values('name').distinct().order_by('name')]
    • 查看我的答案以获得更简单的方法。
    猜你喜欢
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 2011-01-17
    • 1970-01-01
    • 2015-04-20
    相关资源
    最近更新 更多