2016-01-30 99 views
0

我對Django相當陌生,我真的沒有得到文檔。例如在我的代碼中,我用Page.objects.public()查詢所有可用的頁面。這給了我cms.models.pagemodel.Page類型的對象。要在模板中使用它,我需要知道哪些方法可以用於此,但我找不到文檔,我不相信我必須瀏覽Django源代碼才能瞭解該界面。Django文檔參考

那麼有誰知道我在哪裏可以找到可用的方法?

+0

在Python中,您總是可以在對象上使用'dir()'來查找它的屬性和方法。如果沒有記錄,我會感到驚訝 –

+0

你看過[models文檔](https://docs.djangoproject.com/en/1.9/topics/db/models/)嗎? – Chris

+0

@Chris是的,我有,那裏沒有提到。 –

回答

2

Django model instance reference有一些有用的東西,但通常在使用模型實例時,我們傾向於將它們的數據作爲屬性訪問(這將在模型定義中),我們在更新這些屬性後調用方法save

您將從Django模型實例屬性中獲得的數據類型都將是Python對象,因此瞭解如何與其進行交互通常比了解實例上可用的所有方法更重要。

要了解Django模型,您應該看看它的定義。這裏有一個例子:

class Page(models.model): 
    publication_date = models.DateTimeField(null=True) 
    name = models.CharField(max_length=255, blank=True) 

例如,在這裏,如果你有一個Page對象與publication_date,且該屬性被存儲爲DateTimeField,則Django是要給你一個datetime對象當你這樣做:

>>> page = Page.objects.first() 
>>> pubdate = page.publication_date 
>>> type(pubdate) 
<type 'datetime.datetime'> 

類似地,name屬性是一個簡單的Python字符串:

>>> page.name = "New page name" 
>>> page.save() 
# New page name is stored in the db and will be there when queried next. 

最後,爲歐tput的這些東西在模板中,你會直接把它們以同樣的方式:

Assuming you have a `page` variable here that is an instance... 
Page Name is: {{ page.name }} 

Django book可能更有助於熟悉與Django模型交互。

+0

_要了解一個Django模型,你應該看看它的definition_ 所以我需要通過Django源代碼?它不是我的代碼的對象,而是來自Django CMS,文檔沒有提及它在任何地方 –

+3

@MichelH,而不是「Django CMS」是_not_ Django。它是一個獨立的[CMS構建_with_ Django](http://www.django-cms.org/en/),但不是Django項目的一部分。它有完全不同的開發者和[自己的文檔](http://docs.django-cms.org/en/develop/)。由於它的模型不是Django的一部分,因此它們沒有記錄在那裏就不足爲奇了。 – Chris

+0

@Chris啊,好吧,這解釋了它,儘管我在他們的文檔中也找不到它。我真的以爲這兩個人在一起。謝謝! –