我的模型包含字段word
和definition
。字典模型。
word definition
-------------------------
Banana Fruit
Apple also Fruit
Coffee drink
我想做一个查询,它给出了我,按照第一个字母排序,这个:
Apple - also Fruit
Banana - Fruit
Coffee -drink
这是我的模特:
class Wiki(models.Model):
word = models.TextField()
definition = models.TextField()
我想在视图中创建它,而不是在模板中。这怎么可能在django?
答案 0 :(得分:24)
鉴于模型......
class Wiki(models.Model):
word = models.TextField()
definition = models.TextField()
......代码......
my_words = Wiki.objects.order_by('word')
...应该按照正确的顺序返回记录。
但是,如果类型为word
,您将无法在TextField
字段上创建索引,因此如果有word
排序需要很长时间你桌子上有很多行。
我建议将其改为......
class Wiki(models.Model):
word = models.CharField(max_length=255, unique=True)
definition = models.TextField()
...这不仅会在word
列上创建索引,还会确保您无法定义相同的字词两次。
答案 1 :(得分:6)
由于您标记了Django的问题,我将回答如何使用Django实体进行操作。
首先,将您的实体定义为:
class FruitWords(models.Model):
word = models.StringField()
definition = models.StringField()
def __str__(self):
return "%s - %s" % (self.word, self.definition)
获取列表:
for fruit in FruitWords.all_objects.order_by("word"):
print str(fruit)