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.
ドキュメントはまだ書いてない。英語で書くの疲れる。翻訳ツールのお世話になりっぱなし。
枝豆食べながら酒飲みたい。