I持って次のモデル:Letter
が作成された新しいLetter Version
を編集するDjangoは:サブモデルによりモデルと順序を選択するには、詳細を作成
class Item(models.Model):
closed = models.DateTimeField(blank=True, null=True)
closed_by = models.ForeignKey(User, blank=True, null=True)
class Letter(models.Model):
item = models.ForeignKey(Item)
created = models.DateTimeField(default=datetime.now)
letter_name = models.CharField(max_length=40)
file_name = models.CharField(max_length=40, blank=True, null=True)
deleted = models.DateTimeField(blank=True, null=True)
deleted_by = models.ForeignKey(User, blank=True, null=True)
def lastVersion(self):
return self.letterversion_set.order_by('created').latest().created
class LetterVersion(models.Model):
letter = models.ForeignKey(Letter)
created = models.DateTimeField(default=datetime.now)
created_by = models.ForeignKey(User)
text = models.TextField()
def letterItem(self):
return self.letter.item
。最近編集した最後の3つのLetter
をLetterVersion.create
で選択しようとしています。私は私のviews.py
に次のようにあります
lettersAll = Letter.objects.filter(item=i_iID,deleted__isnull=True).order_by('-letterversion__created')[:3]
残念ながら、これが最後の3つのLetterVersion
sが、彼らは同じLetter
からであっても、自分の作成した日付/時刻にbasted私を取得します。
letter 1 version 3 [1]
letter 3 version 4 [2]
letter 1 version 2 [3]
letter 1 version 1
letter 2 version 2
letter 2 version 1
letter 3 version 3
letter 3 version 2
letter 3 version 1
:
letter 1 version 3 [1]
letter 3 version 4 [2]
letter 2 version 2 [3]
は私が編集した最後の3つの文字のリストを取得することができますとにかくありますか?
もしかしたら、この記事を見て、私が記述した何のため名前があるかどうか迷って他の人に指摘して、それはあなたが例を与えることができる 'Aggregation' – Sevenearths