我有一个模型,其中包含字段word
和definition
.字典模型.
在db中,我有例如这些对象:
word definition
-------------------------
Banana Fruit
Apple also Fruit
Coffee drink
Run Code Online (Sandbox Code Playgroud)
我想做一个查询,它给出了我,按照第一个字母排序,这个:
Apple - also Fruit
Banana - Fruit
Coffee -drink
Run Code Online (Sandbox Code Playgroud)
这是我的模特:
class Wiki(models.Model):
word = models.TextField()
definition = models.TextField()
Run Code Online (Sandbox Code Playgroud)
我想在视图中创建它,而不是在模板中.这怎么可能在django?
Aya*_*Aya 26
鉴于模型......
class Wiki(models.Model):
word = models.TextField()
definition = models.TextField()
Run Code Online (Sandbox Code Playgroud)
...代码...
my_words = Wiki.objects.order_by('word')
Run Code Online (Sandbox Code Playgroud)
...应该以正确的顺序返回记录.
但是,word
如果类型为TextField
,则无法在字段上创建索引,因此word
如果表中有很多行,则排序将花费很长时间.
我建议把它改成......
class Wiki(models.Model):
word = models.CharField(max_length=255, unique=True)
definition = models.TextField()
Run Code Online (Sandbox Code Playgroud)
...它不仅会在word
列上创建索引,还会确保您不能两次定义相同的单词.
既然你标记了你的问题Django,我将回答如何使用Django实体做到这一点.
首先,定义您的实体,如:
class FruitWords(models.Model):
word = models.StringField()
definition = models.StringField()
def __str__(self):
return "%s - %s" % (self.word, self.definition)
Run Code Online (Sandbox Code Playgroud)
要获得列表:
for fruit in FruitWords.all_objects.order_by("word"):
print str(fruit)
Run Code Online (Sandbox Code Playgroud)