我想向 Django FlatPage 数据库模型添加一个字段,但我真的不知道如何在不编辑原始应用程序的情况下扩展它。
我想要做的是将以下字段添加到模型中:
from django.db import models
from django.contrib.flatpages.models import FlatPage as FlatPageOld
class FlatPage(FlatPageOld):
order = models.PositiveIntegerField(unique=True)
如何将其添加到 FlatPage 模型中?
提前致谢
您的方法很好 - 您只是看不到结果,因为旧的平面模型已在管理员中注册,而新的模型则没有。以下是您可以在新应用程序的 admin.py 中执行的操作(使用比上面的命名更明确的命名):
from django.contrib import admin
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.forms import FlatpageForm
from django.contrib.flatpages.models import FlatPage
from models import ExtendedFlatPage
class ExtendedFlatPageForm(FlatpageForm):
class Meta:
model = ExtendedFlatPage
class ExtendedFlatPageAdmin(FlatPageAdmin):
form = ExtendedFlatPageForm
fieldsets = (
(None, {'fields': ('url', 'title', 'content', 'sites', 'order')}),
)
admin.site.unregister(FlatPage)
admin.site.register(ExtendedFlatPage, ExtendedFlatPageAdmin)
显然,这里发生了一些事情,但最重要的是,FlatPage 模型正在取消注册,而 ExtendedFlatPage 模型正在其位置上进行注册。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)