1

次のテーブルがある場合:

class Potter(models.Model):
    name = models.CharField()

class Sculpture(models.Model):
    potter = models.ForeignKey(Potter)
    created = models.DateTimeField()

class Vase(models.Model):
    potter = models.ForeignKey(Potter)
    created = models.DateTimeField()

データベースヒットの最小量で最新SculptureまたはVase特定のデータベースを見つけるにはどうすればよいですか(つまり、これは私の問題を単純化しすぎているため、2つ以上のテーブルを参照していますPotterPotter

4

1 に答える 1

2

陶芸家 ID を受け取るビューがあるとします。

ordered_sculptures = Sculpture.objects.filter(potter=potter).order_by('-created') 
ordered_vases = Vase.objects.filter(potter=potter).order_by('-created')

編集:何かを読み間違えた可能性があるため、クエリセットを使用して最新のものが必要な場合は、各クエリセットの最初の要素を参照するだけです (存在する場合):

latest = ordered_sculptures[0]

同じことが花瓶にも当てはまります。

参照:ドキュメントの django order_by

これらのクエリセットのデフォルトの順序を定義した場合の別のアプローチは、逆の方法です。

latest = Sculpture.objects.filter(potter=potter).reverse()[0]
于 2013-03-21T17:01:31.630 に答える