2014-07-13 10 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