0

次のようなdjangoモデルがあります。

class Definition
    name = models.CharField(max_length=254)
    text = models.TextField()

次のクエリを実行すると:

animal = Definition.objects.get(name='Owl')

そして、データベースにこれらの名前を持つ次の定義がある場合:

Elephant, Owl, Zebra, Human

モデル内のフィールドanimalのアルファベット順に基づいて、オブジェクトに基づいて前と次の定義を表示する django クエリを実行する方法はありますか?name

フィールドに基づいて前/次を取得する方法があることは知っていますがdatetime、この場合はよくわかりません。

4

2 に答える 2

5

3 つ未満のクエリでこれを行う方法がわかりません。

target = 'Owl'
animal = Definition.objects.get(name=target)
previous_animal = Definition.objects.order_by('name').filter(name__lt=target)[0]
next_animal = Definition.objects.order_by('name').filter(name__gt=target)[0]
于 2012-09-30T19:44:07.653 に答える