我使用django API继承了一些代码,并试图了解/掌握如何正确修改它。
我有一个名为Asset的Model类和一个名为Calibration的Model类。
校准与资产有多对一关系,所以:
class Calibration(Record):
...
asset = models.ForeignKey(Asset, relatedName = "calibrationRecords")
...
当我查看单个资产时,我可以看到校准记录,正如人们所期望的那样。
在API的另一部分,我可以列出给定客户的所有资产,但是在此页面上,不显示calibrationRecords链接。
这有点好,因为我实际上并不想看到此视图上的所有校准记录,但我想在这里看到最后一个(最近的)校准记录,所以实质上是在这个上添加一个计算字段模型?
这个计算应该去哪里,最好的方法是什么?
答案 0 :(得分:1)
如果要添加方法来过滤模型,只需添加model.Manager
即可E.g。
class ReviewerManager(models.Manager):
def get_all_the_younger_reviewers(self):
return self.get_queryset().filter(age__lt=18)
class Reviewer(models.Model):
first_name = models.CharField(max_lenght=50, null=False, blank=False)
last_name = models.CharField(max_lenght=50, null=False, blank=False)
age = models.IntegerField()
objects = ReviewerManager()
@property
def full_name(self):
return self.first_name + " " + self.last_name
现在您可以使用新方法进行过滤:
Reviewer.objects.get_all_the_younger_reviewers()