表级操作和记录级操作有什么区别?

Ser*_*ity 3 python database django django-models

在查阅 django 的文档以收集详细知识时,我忍受了“表级操作”和“记录级操作”这两个词。它们之间有什么区别?谁能用例子向我解释这两个词?他们还有别的名字吗?

PS我并不是因为我觉得他们很相似而问他们的区别,但我觉得这样理解会更清楚。

use*_*017 5

在 Django 的上下文中,记录级操作是对单个记录的操作。一个例子是当您在模型中定义自定义方法时:

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)

表级操作是对一组记录起作用的操作,其中一个示例是为类定义 ModelManager 时:

# First, define the Manager subclass.
class DahlBookManager(models.Manager):
    def get_queryset(self):
        return super(DahlBookManager, self).get_queryset().filter(author='Roald Dahl')

# Then hook it into the Book model explicitly.
class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)

    objects = models.Manager() # The default manager.
    dahl_objects = DahlBookManager() # The Dahl-specific manager.
Run Code Online (Sandbox Code Playgroud)

PS:我从 django 文档中获取了这些示例。