を回避:ジャンゴ1.11順序は、以下の簡略化され、私は(多くの関係1)親と子のモデルを持っているDjangoの1.11で
class Conversation(models.Model):
name = models.CharField(max_length=150)
class Comment(models.Model):
comment_text = models.TextField()
submitted_date = models.DateTimeField()
conversation = models.ForeignKey(Conversation, on_delete=models.CASCADE)
class Meta:
ordering = ['-submitted_date']
会話は多くのコメントを持つことができます。今私がしたいのは、最も最近のコメントがある会話を注文することです。私は会話モデルにこれを追加しようとしました:
class Meta:
ordering = ['-comment__submitted_date']
そして作品のこの種が、それはクエリセットで重複を返す - この重複した動作がうまくジャンゴに文書化され、それがなぜ起こるか - https://docs.djangoproject.com/en/1.11/ref/models/querysets/#order-by - しかし、それはdoesnのそれを回避する方法については何も言わないでください。
私はこの制限を回避する方法を探しています。全体の目標は、会話を最新のコメント(submitted_date)でソートすることです。私は複数のバリエーションを試してみたが、それは一種全くないか、またはそれは(私には有用ではありません)重複を返します。 distinct()は動作しません。これもリンクに記述されています。
私はは会話に「updated_atの」または類似のフィールドを追加し、コメントが作成されるたびに/更新することを更新し、それは私には本当にハックと汚れた感じ、そして可能ならば、私はむしろそれを避けるだろうことができます。
提案がありますか?
でこのクエリ自体が動作するように見えるんだと思います!どのような方法で私はこれを "順序付け"メタ属性に入れることができるので、デフォルトでこの方法で注文されますか?私は構文が何であるか分かりません。 –