Главная | Архив новостей | Общение | Площадка | Примеры OpenID
Хостинг Django от «Джино»
Возрождение...
2010-08-05 10:21:29

Начались работы по возрождению сайта. Планируем взлететь к 1 сентября.


Планы
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. Переводы такого текста можно присылать через жалобную систему.



Декоратор для выдачи файла

Данный декоратор обеспечивает выдачу пользователю файла с правильным указанием MIME типа и имени файла:

from django.http import HttpResponse, HttpResponseRedirect

def save_file(mimetype):
    def saver(func):
        def wrapper(request, *args, **kw):
            result = func(request, *args, **kw)
            if isinstance(result, tuple):
                filename, data = result
                resp = HttpResponse(data, mimetype=mimetype)
                resp['Content-Disposition'] = 'attachment; filename=%s' % filename
                return resp
            return result
        return wrapper
    return saver

Пример использования:

@save_file('application/xml') # здесь указываем MIME тип файла
def xml_response(request):
    """ Отдаём результат в формате XML. """
    try:
        # Допустим, что генерация XML производится внешней функцией
        xml = "<resp><code>200</code><desc>Ok</desc></resp>"
    except Exception, e:
        # В случае ошибки, перенаправляем на соответствующую часть сайта
        request.session['error'] = e
        return HttpResponseRedirect('/error/')
    return ('result.xml', xml) # здесь указываем его имя и содержимое

Декоратор корректно обработает ситуацию, когда декорируемая функция возвращает не имя файла и его содержимое. Как видно из примера, функция может возвращать объект для перенаправления пользователя на страницу с ошибкой. Всё это будет обработано так как надо, беспокоиться об этом не стоит.


Увидели ошибку?
Выделите её мышкой и нажмите
Ctrl-Enter
Обработано:
1165 49 130 71

Версия книги
1.0 2.0
Версия 2.0 в процессе перевода!

Мой луч
Многообразие света

Полезное
Актуальные вакансии, Python работа для python-разработчиков.


Скачать в формате
CHM от 2 сентября

Заказать PDF файл можно через почту, чат, джаббер. Всего 2WMZ. Содержимое точно соответствует содержимому сайта.
Чем чаще заказываете — тем больше перевожу.

Русская группа

на поддержку перевода
Яндекс Яндекс.Деньги Хочу такую же кнопку
Ускорить процесс перевода!
R130494980980
Z425285133788
E112528079659
U327380922061

Книга помогла реализовать:
Проект «Мой луч»
АРМ УФМС.


Мой вебсайт стоит666 337,31 руб

© 2008-2009 Ruslan Popov @ gmail.com Powered by Django 1.1 beta 1 SVN-11114
Главная | Архив новостей | Общение | Площадка | Примеры OpenID