在我的平面广告管理更改列表页面mysite.com/admin/flatpages/flatpage/
中,我可以看到字段:
有没有办法同时显示现场?我将我的flatpages与特定网站相关联。执行此操作的不好方法是转到实际的Flatpage管理源[{1}}并创建一个方法,该方法将在更改列表页面上显示Flatpage的网站。
我基本上是在寻找一种在管理端覆盖django.contrib应用程序的方法。
答案 0 :(得分:10)
您无需编辑flatpages / admin.py。而是创建一个继承自默认CustomFlatPageAdmin
。{/ p>的FlatPageAdmin
您可能想为以下admin.py文件创建一个customflatpage
应用,或者您可能已经有一个可以将其添加到的实用程序应用。
#admin.py
from django.contrib import admin
from django.contrib.flatpages.models import FlatPage
from django.contrib.flatpages.admin import FlatPageAdmin
def get_sites(obj):
'returns a list of site names for a FlatPage object'
return ", ".join((site.name for site in obj.sites.all()))
get_sites.short_description = 'Sites'
class CustomFlatPageAdmin(FlatPageAdmin):
list_display = ('title', 'url', get_sites)
#unregister the default FlatPage admin and register CustomFlatPageAdmin.
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, CustomFlatPageAdmin)