Newforms-admin初級編
RFC: Django 1.0 roadmap and timelineから盛り上がってきたDjangoですが、これを機に少し触ってみる。
インストールは、newforms-adminのSVNやソースから取得して、あとは安定版や開発版と同じ方法なので省略。
次に、環境構築。(適宜自分の方法に置き換えてください)
- django-admin.py startproject XXX
- manage.py startapp YYY
- settings.py編集
- INSTALLED_APPに"django.contrib.admin"とついでに"YYY"を追加
までは、かわりありませんが次から少し変わってきます。
生成されるurls.pyの内容が少し変わっています。
安定版・開発版は
from django.conf.urls.defaults import * urlpatterns = patterns('', # Example: # (r'^tsic/', include('tsic.foo.urls')), # Uncomment this for admin: # (r'^admin/', include('django.contrib.admin.urls')),
でしたが、newforms-adminでは
from django.conf.urls.defaults import * # Uncomment this for admin: #from django.contrib import admin urlpatterns = patterns('', # Example: # (r'^newforms/', include('newforms.foo.urls')), # Uncomment this for admin docs: #(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment this for admin: #('^admin/(.*)', admin.site.root), )
のように少し増えてますが、大丈夫です。
4行目と14行目を以下のようにコメントアウトするだけです。
from django.conf.urls.defaults import * # Uncomment this for admin: from django.contrib import admin urlpatterns = patterns('', # Example: # (r'^newforms/', include('newforms.foo.urls')), # Uncomment this for admin docs: #(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment this for admin: ('^admin/(.*)', admin.site.root), )
urls.pyの修正はこれだけです。
次にmodels.pyを作成します。
from django.db import models # Create your models here. class Address(models.Model): short_name = models.CharField(max_length=20) long_name = models.CharField(max_length=80) addr_line_1 = models.CharField(max_length=80, blank=True) addr_line_2 = models.CharField(max_length=80, blank=True) city = models.CharField(max_length=50) state = models.USStateField() zip = models.CharField(max_length=10, blank=True) def __uicode__(self): return self.short_name
までは共通です。
つぎに
安定版・開発版でAddress定義をadminに表示させる一番の簡単な方法は上記の定義の下に
class Admin: pass
でしたが、newforms-adminでは少し違います。
from django.contrib import admin admin.site.register(Address)
のようになります。
ちょっとtemplatetagsチックですね。
次回は(いつ?)もう少し進めていきたいと思います。
先に進みたい方は、The Power of Django Admin (Even For Non-Django Projects)をご覧下さい。