2016-01-30 2 views
0

Я довольно новичок в Django, и я действительно не получаю документацию. Например, в моем коде я запрашиваю все доступные страницы с Page.objects.public(). Это дает мне объекты типа cms.models.pagemodel.Page. Чтобы использовать это в шаблоне, мне нужно знать, какие методы я могу использовать для этого, но я просто не могу найти документацию, и я не могу поверить, что мне нужно просмотреть исходный код Django, чтобы узнать интерфейс.Ссылка на документацию Django

Так кто-нибудь знает, где я могу найти доступные методы?

+0

В Python вы всегда можете использовать 'dir()' для объекта, чтобы узнать его атрибуты и методы. Я буду удивлен, если это не задокументировано. –

+0

Вы посмотрели [документацию по моделям] (https://docs.djangoproject.com/en/1.9/topics/db/models/)? – Chris

+0

@ Крис Да, я, там не упоминается. –

ответ

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, вы должны посмотреть на ее определение_ Так что мне нужно пройти через исходный код 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

@ Крис А, хорошо, это объясняет, хотя я не могу найти его и в своей документации. Я действительно думал, что эти двое принадлежат друг другу. Благодаря! –

Смежные вопросы