FlatPagesの拡張 - inline追加

拡張してみましょう

FlatPagesで自由に入力できる項目は内容しかありません。
FlatPagesを拡張してみませんか?

仕様

  1. 各フラットページにキーワードを追加(必須)

適用前

FlatPageInline01

model作成

キーワードを格納するモデルを作成します。

models.py

from django.db import models
from django.contrib.flatpages.models import FlatPage

class SearchKeyword(models.Model):
    keyword = models.CharField(max_length = 50)
    page = models.ForeignKey(FlatPage)

    def __unicode__(self):
        return self.keyword

adminを拡張

admin.py

from django.contrib import admin
from models import SearchKeyword
from django.contrib.flatpages.models import FlatPage
from django.contrib.flatpages.admin import FlatPageAdmin

class SearchKeywordInline(admin.StackedInline):
    model = SearchKeyword
    max_num = 3
    extra = 1

class MyFlatPageAdmin(FlatPageAdmin):
    inlines = [SearchKeywordInline]

admin.site.unregister(FlatPage)
admin.site.register(FlatPage, MyFlatPageAdmin)

このadmin.pyの肝は、

ことです。

適用後

FlatPageInline02

元ネタは

twitter 2009-04-12 04:00:31.000461

関連ページ

参照サイト

Recent Updates

URLConf Tip 01 - キャプチャの有無にかかわらず同一のviewで処理する
Markdownの入力補助"wmd"をAdmin siteで使う
ModelFormでfieldのwidgetを変更する
動的なformを作る 6 - Dynamic Inline Admin site編
Formsetsを使う3 - inlineformset_factory編
動的なformを作る 5 - django-dynamic-formset編
Formクラスからメディアを定義する
複数のmodelを結合する 2 - Proxy model編
複数のmodelを結合する 1
ModelFormでfieldの表示順番を変える
Admin siteのwidgetを個別に変更する
formfield_overridesを使ってAdmin siteのwidgetを変更する
Admin siteのlist_displayをカスタマイズする - リンク編
Admin siteのlist_displayをカスタマイズする - 基本編
Admin siteのTextareaの高さを自在に変更する - admin.py編