Главная | Архив новостей | Общение | Площадка | Примеры OpenID
Хостинг Django от «Джино»
Планы
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: Используем по-взрослому.»



Без права редактирования

(c) 2009 alerion.um с гмыла

Есть модель комментариев. Нужен интерфейс в админке для их модерирования. Модератор может только удалять комментарии, во избежания казусов "я такого не писал". Нужно убрать права на изменение записи и убрать все ссылки на страницу редактирования комментария.

Файл models.py

class Comment(BaseComment):
    content_type   = models.ForeignKey(ContentType, related_name="content_type_set_for_%(class)s")
    object_id      = models.TextField('object ID')
    content_object = generic.GenericForeignKey(ct_field="content_type", fk_field="object_id")
    content_object.short_description = u'Статья'

    user        = models.ForeignKey(User, related_name='%(class)s_comments')
    comment     = models.TextField('Комментарий', max_length=COMMENT_MAX_LENGTH)
    ip          = models.IPAddressField('IP', editable=False)
    created_at  = models.DateTimeField('Добавлен', auto_now_add=True)

    class Meta:
        verbose_name = 'комментарий'
        verbose_name_plural = 'комментарии'

    def get_category(self):
        '''
        Возвращаем читабельное название раздела к которому принадлежит комментарий
        '''
        parts = {
            'news': u'Новости',
            'cinema': u'Киноафиша'
        }
        return parts[self.content_type.app_label]
    get_category.short_description = u'Раздел'

Файл admin.py

class CommentAdmin(admin.ModelAdmin):
    list_display = ('user', 'comment', 'get_category', 'content_object', 'ip', 'created_at')
    list_select_related = True
    search_fields = ('comment', 'user__username')
    ordering = ('-created_at',)

    def has_change_permission(self, request, obj=None):
        '''
        Если просто возвращать False, django даже не пусть на страницу 
        списка объектов, которая нам и нужна. Если obj не равно None, значит 
        пользователь пытается зайти на страницу редактирования, иначе - страницу
        списка комменатариев.
        '''
        if obj:
            return False
        else:
            return super(CommentAdmin, self).has_change_permission(request, obj=None)

    def has_add_permission(self, request):
        #Запрещаем добавление комментариев через админский интерфейс
        return False

    def changelist_view(self, request, extra_context=None):
        '''
        Этот метод возращает таблицу комментариев.
        Вот здесь мы убираем ссылку на редактирование комментария на странице списка
        комментариев. В __init__ не получается, потому где-то после него ставится
        первая колонка по дефолту. (None,) потому что если передать пустой список,
        в теге шаблона ссылка добавится на checkbox.
        '''
        self.list_display_links = (None,)
        return super(CommentAdmin, self).changelist_view(request, extra_context=None)

Увидели ошибку?
Выделите её мышкой и нажмите
Ctrl-Enter
Обработано:
1049 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