django-edamameというライブラリを公開しました

django-edamameはDjangoで複数のビュー関数、ビュークラスをまとめる機能を提供します。
django-edamame 0.1 : Python Package Index
このアイデア自体は数年前から持っていて、実装コードではちょくちょく使ってた。
複数のビューをまとめて似たような機能を作る場合なんかに便利。

使用例

クラスベースの汎用ビューをまとめたModelViewsクラスの使用例。

note/views.py
from django.core.urlresolvers import reverse_lazy
from edamame import generic
from . import models


class NoteViews(generic.ModelViews):
    model = models.Note
    success_url = reverse_lazy('note:index')

note_views = NoteViews()

これで、ListView, DetailView, CreateView, UpdateView, DeleteViewをまとめたクラスとなり、それぞれのURLパターンも用意される。

example/urls.py

django.contrib.admin.AdminSiteみたいにinclude関数にurlsプロパティを指定します。

from django.conf.urls import patterns, include, url
from note.views import note_views

urlpatterns = patterns('',
    url(r'', include(note_views.urls)),
)

exampleにサンプルプロジェクトが入ってる。
リポジトリGithubに置いた。
GitHub - tokibito/django-edamame: One idea of Class-based view module.
ドキュメントはまだ書いてない。英語で書くの疲れる。翻訳ツールのお世話になりっぱなし。
枝豆食べながら酒飲みたい。