2009-11-08 149 views
0

的第一值I具有元组的7元组为这样:Django的:订购由元组

POSSIBILITIES = ((1, "Something"), 
       (2, "Something else"), ...) 

现在我有choices一个IntegerField与上面列出的可能性的模型。

class Something(models.Model): 

    class Meta: 
     ordering = "...?" 

    something = models.IntegerField(choices=POSSIBILITIES) 

我希望默认情况下数据库中的条目按每个元组中的整数排序。我如何指定?

回答

2

这应该做的伎俩:

class Meta: 
    ordering = ('something',) 

最后一个逗号是很重要的,它是必需的。

+0

对于阅读此内容并想知道逗号的人来说,这就是您在Python中编写1元组的方法。 – 2009-11-08 18:54:32

+0

Python使用尾随逗号区分1元组与括号内的表达式是一种破解。避免被这个问题困扰的一种方法是使用列表而不是元组。 (例如“ordering = ['something']”)我怀疑是否有明显的性能下降,Django并不关心,它只是想要一个迭代。如果您在Admin编辑页面中有复杂的字段表达式,则此1元组的障碍会变得特别刺激。 – 2009-11-08 19:11:35

1

ordering = ('something',)应该工作。整数值是实际存储在数据库中的something的内容,所以默认情况下它们将按整数排序。