我想覆盖模型中的save方法,并从save方法内部查询模型本身。我可以在它自己的方法中访问Student
模型,如下所示吗?
class Student(models.Model):
action = models.CharField(max_length=50)
count = models.IntegerField()
def save(self, *args, **kwargs):
count = Student.objects.filter(action=self.action).order_by('-count'))[:1]
if count:
#do something
else:
#do something else
super(Student, self).save(*args, **kwargs)
这两种方式有什么区别?
count = Student.objects.filter(...)
count = self.__class__.objects.filter(...)
答案 0 :(得分:3)
第一个问题:是的,您可以使用其中一种方法访问课程。
第二个问题:在您的示例中,它们是等效的,但如果您要将其子类化(例如,名为SubStudent
),则第一个仍将引用Student
其中{ {1}}会引用self.__class__