我有一个 Django 模型对象 Record,它具有其他两个模型 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()
需要明确的是,这不是如何获取计数的问题,而只是将函数放在代码的哪个区域。
这是一个类似的问题,但它解决的是“如何”而不是“在哪里”: Counting and summing values of records,filtered by a dictionary of foreign keys in Django