2016-01-30 137 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啊,好吧,这解释了它,尽管我在他们的文档中也找不到它。我真的以为这两个人在一起。谢谢! –