2014-07-13 11 views
1

我正在浏览Django官方的民意调查指南。我能够遵循这些步骤,并且能够获得结果。但我无法理解模型的结构了解Django的数据库API和模型 - Poll.objects

在shell中使用API​​(轮询教程第1部分)时,使用Polls.objects.all()列出对象现在轮询是从models.Model继承的类。但是对象呢?

使用Poll.objects列出对象,然后我们可以使用它的所有方法。

那么究竟是什么Poll.objects(别的东西的实例?)对不起,如果这听起来真的很笨,我对所有这些东西都很新。

回答

3

Poll.objects是在Django一个特殊的东西叫Manager

经理是通过数据库查询操作是提供给Django模型 接口。 Django应用程序中的每个型号 都至少存在一个管理器。

名称objects只是Django遵循的惯例/标准。您可以轻松地更改它:

from django.db import models 

class MyModel(models.Model): 
    whatever = models.Manager() 

您还可以定义您的自定义模型管理器方法。通常这是一种真正的提取和重用与数据库模型交互相关的功能的好方法。例如:

+0

所以对象基本上是一个实例models.Manager():)我是正确的假设,所有和其他过滤器在models.Manger方法() ? –

+0

@TarunKumarVangani是的,'get()','filter()'等是模型管理器的方法。 – alecxe

+0

@TarunKumarVangani FYI,[source](https://github.com/django/django/blob/master/django/db/models/manager.py)。 – alecxe