from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
def get_full_name(self):
return f"{self.name}, {self.age} years old"
def increment_age(self, years=1):
self.age += years
self.save()
@classmethod
def get_adults(cls):
return cls.objects.filter(age__gte=18)
上述例子中,get_full_name 是一个实例方法,返回包含姓名和年龄的字符串。increment_age 也是一个实例方法,可以用于增加对象的年龄。get_adults 是一个类方法,用于查询所有年龄大于或等于 18 岁的对象。
在模型方法中,您可以使用 self 引用实例本身,也可以使用 cls 引用类本身(对于类方法)。此外,您可以在方法中执行与数据库的交互,如保存对象或查询其他对象。
在使用模型方法时,请确保了解该方法的作用范围(是实例方法还是类方法)以及是否需要与数据库进行交互。这样可以更好地设计和组织您的模型方法。
请注意,具体的实现和用法可能会因 Django 版本而异,因此建议查看与您正在使用的 Django 版本相对应的[官方文档](https://docs.djangoproject.com/)以获取更详细和最新的信息。
转载请注明出处:http://www.zyzy.cn/article/detail/7133/Django