FlatPagesの拡張 - inline追加
拡張してみましょう
FlatPagesで自由に入力できる項目は内容しかありません。
FlatPagesを拡張してみませんか?
仕様
- 各フラットページにキーワードを追加(必須)
適用前
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の肝は、
- FlatPageAdminのサブクラスを作成
- FlatPageを一度unregisterして、作成したサブクラスと共にFlatPageを再度registerする
ことです。
適用後
元ネタは

