Django モデル オブジェクト Record があります。このオブジェクトには、他の 2 つのモデル RecordType と Source への外部キーがあります。
class Record(models.Model):
title = models.CharField(max_length=200)
record_type = models.ForeignKey(RecordType)
source = models.ForeignKey(Source)
質問: ID "x" の RecordType と ID "y" の Source を参照する Record オブジェクトの数を数えたい場合、その関数を配置するコードの適切な領域はどこですか?
現在、私はviews.pyにそれを持っていますが、それは「ファットモデル、シンビュー」のベストプラクティスに違反していると感じているので、views.pyから移動したいと思います. しかし、これが行ベースの操作なのかテーブルベースの操作なのか完全にはわからないため、モデル メソッドとして実装する必要があるのか、代わりにマネージャーとして実装する必要があるのか はわかりません。
views.py の現在の (動作中の) ロジックは次のとおりです。
record_count = Record.objects.filter(record_type__id=record_type_.id, source__id=source_.id).count()
明確にするために、これはカウントを取得する方法の問題ではなく、単にコードのどの領域に関数を配置するかという問題です。
これは同様の質問ですが、「場所」ではなく「方法」に対処していました: Django の外部キーの辞書によってフィルター処理されたレコードの値のカウントと合計