Планы
2010-03-06 22:15:07
Окончательно понял, что ресурсов по дальнейшему переводу в ближайшее время у меня так и не появится. Что ж, будем менять формат сайта. Он по-прежнему останется ориентированным на новичков. Но и заматеревших джангистов тоже приятно видеть на нашем канале.
Исходники перевода будут выложены в формате DocBook XML в Git. Патчи с исправлениями и, может быть, переводами оставшихся глав будут приниматься, проверяться и выкладываться на сайт. Думаю, это поможет всем желающим поучаствовать в данном проекте.
Выложена шестая глава
2009-11-12 19:52:46
Несмотря на страшную загруженность была завершена работа по проверке перевода шестой главы, который был предоставлен Дмитрием aka Alerion. Огромное ему спасибо за проделанную работу.
Седьмая глава переведена
2009-09-03 12:05:29
Данная глава была полностью переработана авторами, поэтому она потребовала значительно больше времени на её перевод. Простая коррекция предыдущей версии главы здесь не помогала. Читайте и присылайте уведомления о замеченных ошибках.
P.S. Скоро обещают прислать перевод шестой главы...
Пятая глава переведена
2009-08-26 21:45:40
На фоне решения сложной (для меня) проблемы с дизайном в стороннего проекта, сегодня за день перевёл пятую главу книги. Всё выложено на сайт. Я пропустил совсем немного английского текста. Места, к которым я планирую вернуться, отмечены словом FIXME. Переводы такого текста можно присылать через жалобную систему.
Книга о Django
2009-08-22 22:10:20
Камрад Plesser любезно предоставил книгу Django. Разработка веб-приложений на Python. Я выделил время на её изучение. Первое время, я даже начал подумывать о завершении работы над переводом второй версии DjangoBook. Но дочитав, понял, что надо продолжать.
Моё резюме книги: Очень хороший материал для человека решившего перейти на Django/Python с других платформ. Материал подаётся наглядно и достаточно подробно. Разбирается работа нескольких приложений: блог, фотогалерея и так далее.
Но!
Книгу писали до выхода версии Django 1.0. Там есть моменты, которые не соответствуют действительности (я имею в виду версию из SVN). И вообще, после года работы с Django понимаешь, что на самом деле проекты надо делать не так как пишут в книжках. Так что, перевод DjangoBook будет продолжен. А там можно будет подумать о книге «Django: Используем по-взрослому.»
|
Работа с исключениями
При написании приложения часто требуется получить какую-нибудь информацию из внешнего источника, например, адрес пользователя из его профайла, группу пользователя или что-нибудь из базы данных. Начинающие разработчики часто используют нечто подобное:
# Это неправильный код!
from django.contrib.auth.models import User, Group
from project.authuser.models import UserProfile
from project.po.models import RO
# Получение адреса пользователя из профайла
def get_address(request):
profile = request.user.get_profile()
address = ''
if profile:
address = profile.address
return address
# Добавление пользователя в группу
SOME_GROUP_ID = 42
def join_user_to_group(request):
group = Group.objects.get(id=SOME_GROUP_ID)
if group:
request.user.add(group)
return True
return False
# Получаем данные из базы
def get_records(request):
org = RO.objects.get(id = request.user.get_profile().org.id)
if org:
return org
return None
Выглядит всё это очень ужасно, даже если закрыть глаза на явные ошибки.
Попробуем переписать это всё с использованием обработки исключений:
from django.contrib.auth.models import User, Group
from project.authuser.models import UserProfile
from project.po.models import RO
# Получение адреса пользователя из профайла
def get_address(request):
try:
return request.user.get_profile().address
except UserProfile.DoesNotExist:
return 'Профайл отсутствует'
# Добавление пользователя в группу
SOME_GROUP_ID = 42
def join_user_to_group(request):
try:
group = Group.objects.get(id=SOME_GROUP_ID)
request.user.add(group)
return True
except Group.DoesNotExist:
return False
# Получаем данные из базы
def get_records(request):
try:
return RO.objects.get(id = request.user.get_profile().org.id)
except UserProfile.DoesNotExist:
print 'Профайл отсутствует'
return None
except RO.DoesNotExist:
print 'Нет данных'
return None
По-моему, так будет лучше.
|
Мой луч
Многообразие света
|
|
|
на поддержку перевода
|
|
Ускорить процесс перевода!
R130494980980
Z425285133788
E112528079659
U327380922061
|