13 мая 2009 г.

django-attachments

http://pypi.python.org/pypi/django-attachments/0.2.4

Всем привет! Сегодня хочу написать про django-attachments. Почему? – потому что это великолепный пример pluggable приложения на джанго.

Функция данной апликации – добавление файлов к объекту (и ничего больше). Но сделано толково.

Примеры со страницы продукта http://pypi.python.org/pypi/django-attachments/0.2.4 – тому доказательство.

1. Подключаем к своему проекту

    1. Put attachments to your INSTALLED_APPS in your settings.py within your django project.
    2. Add (r'^attachments/', include('attachments.urls')), to your urls.py.

2. Используем в админке



from django.contrib import admin
from attachments.admin import AttachmentInlines

class MyEntryOptions(admin.ModelAdmin)
inlines = [AttachmentInlines]


3. Встраиваем в фронт-енд сайта:



{% load attachments_tags %}
{% get_attachments_for entry as "attachments_list" %}


 – получаем список приложенных файлов для объекта entry



{% attachment_form [object] %}


- рендерим форму добавления файла к объекту из фронт-енда (если пользователь не авторизован – возвращает пустую строку)



{% for att in attachment_list %}
{{ att }} {% attachment_delete_link att %}
{% endfor %}


 – темплейт-тэг {% attachment_delete_link att %} – рендерит ссылку на удаление приложенного файла.


Как видите, Martin Mahner позаботился о том, чтоб его приложение полностью вписалось в любой проект без каких либо швов. Мне нравится его подход, он умудрился сделать функциональность действительно простой. По сути, это и есть django-кайф к которому все так стремятся.

1 комментарий:

Alexander Afanasiev комментирует...

Да, отличный апп. Не хватает правда russian locale.

На эту тему есть еще одно интересное творение: https://github.com/redsolution/django-tinymce-attachment.