Django 中什么时候调用模型方法

Tom*_*Tom 6 python django methods model

我试图了解模型方法是如何工作的。举个例子:来源在这里

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    birth_date = models.DateField()

    def baby_boomer_status(self):
        "Returns the person's baby-boomer status."
        import datetime
        if self.birth_date < datetime.date(1945, 8, 1):
            return "Pre-boomer"
        elif self.birth_date < datetime.date(1965, 1, 1):
            return "Baby boomer"
        else:
            return "Post-boomer"
Run Code Online (Sandbox Code Playgroud)

baby_boomer_status方法什么时候被调用?

我尝试替换return为print,但该方法从未被调用。

这是如何运作的?抱歉这个菜鸟问题。

Goc*_*cht 7

如果你有一个 Person 对象

my_person = Person.objects.first()
Run Code Online (Sandbox Code Playgroud)

您可以调用模型方法:

my_person.baby_boomer_status()
Run Code Online (Sandbox Code Playgroud)

由于这会返回一个字符串,因此您可以打印其结果

print my_person.baby_boomer_status()
Run Code Online (Sandbox Code Playgroud)