|
Table of contents
|
Функция
Давайте взглянем на одно из этих базовых представлений:
представление «список объектов». Мы используем
объект class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
class Meta:
ordering = ["-name"]
class Admin:
pass
def __unicode__(self):
return self.name
Чтобы создать страницу со списком всех издателей[12] мы использовали такой файл со схемой URL: from django.conf.urls.defaults import *
from django.views.generic import list_detail
from mysite.books.models import Publisher
publisher_info = {
"queryset" : Publisher.objects.all(),
}
urlpatterns = patterns('',
(r'^publishers/$', list_detail.object_list, publisher_info)
)
Это весь код на языке Python, который нам потребуется
написать. Однако, нам ещё надо создать шаблон. Мы можем явно
указать представлению object_list какой шаблон
надо использовать, добавив параметр
Этот шаблон будет обработан с учётом контекста, содержащего
переменную {% extends "base.html" %}
{% block content %}
<h2>Publishers</h2>
<ul>
{% for publisher in object_list %}
<li>{{ publisher.name }}</li>
{% endfor %}
</ul>
{% endblock %}
Вот всё что надо. Все преимущества базовых представления идут от изменения словаря с информацией, который передаётся такому представлению. Приложение «Справочник по базовым представлениям» документирует все базовые представления и все их параметры. Остальная часть главы описывает общие способы работы и настройки базовых представлений. [12] В оригинальной книге, здесь они создают страницу со списком всех книг. Хотя, судя по коду, книги тут ни при чём. |
Found misprint?
Select it with the mouse and hit Enter
-
Processed:
33
1
199
25
The full repository of DjangoBook translation you can get on GitHub.
We appreciate your patches!
We are glad to hear your questions, comments or suggestions!
(Open in new tab)
Users number: 601
Русская группа
Ускорить процесс перевода!
ЯМ:41001223475816
|
| © 2008-2012 Ruslan Popov @ gmail.com | Powered by Django 1.2.5 |
django 1.3.1 зробив, як книжка пише) i все працює)
лучше постите такие вопросы на форум
сам только начал разбираться с django
версия 1.2.3
Exception Type: TemplateDoesNotExist
Exception Value: books/publisher_list.html
шаблон искался в том каталоге в котором описана модель
должно ли так быть, или это какой-то косяк не знаю
решил проблему добавив в publisher_info
template_name
в итоге получилось
publisher_info = {
"queryset": Publisher.objects.all(),
"template_name": "publisher_list.html",
}
http://docs.djangoproject.com/en/dev/ref/generic-views/
Ага, спасибо про def __str__(self): понятно
Да каталог шаблонов в settings.py прописан и другие шаблоны работают.
Просто интересно, не у кого не возникало данной ошибки именно в данной главе на версии 1.2?
Обратите внимание на то, что эта глава не переведена для второй версии книги и тут может быть всякое.
Про __unicode__, так оно правильнее, если вы не семибитный житель США.
Раз Django выдаёт такую ошибку, значит так и есть. Вы подключили данный каталог с шаблонами в settings.py?
Есть несколько вопросов:
Что такое "class Admin: pass"? Django на это ругается и этого нету в оригинальном источнике.
Опять же в оригинальном источнике описана функция "def __str__(self):", а здесь "def __unicode__(self):". Что правильно?
И при выполнении описанного кода Django выдет ошибку: TemplateDoesNotExist at /publishers/. Хотя publisher_list.html на месте. Что бы это могло значить?
Заранее спасибо