添加功能到Django FlatPages,而不用改变原来的Django应用程序 [英] Add functionality to Django FlatPages without changing the original Django App

查看:272
本文介绍了添加功能到Django FlatPages,而不用改变原来的Django应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Django FlatPage数据库模型中添加一个字段,但是我不知道如何在没有原始应用程序的情况下进行扩展。

I would like to add a field to the Django FlatPage database model, but I do not really know how to extend this without editing the original application.

要做的是将以下字段添加到模型中:

What I want to do is to add the following field to the model:


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

class FlatPage(FlatPageOld):
    order = models.PositiveIntegerField(unique=True)

如何将其添加到FlatPage模型?

How do I get to add this to the FlatPage model?

提前感谢

推荐答案

您的方法很好 - 您只是看不到结果,因为旧的平板模型已在管理员中注册,新的不是。以下是您可能在新应用程式的admin.py中使用的内容(使用比上述更少的模糊命名):

Your approach is fine - you just don't see the result because the old flatpage model is registered in the admin and the new one isn't. Here's what you might do in your new app's admin.py (using less ambiguous naming than what you've got above):

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模型正在其注册。

Obviously there are a few things going on here, but most importantly the FlatPage model is being unregistered and the ExtendedFlatPage model is being registered in its place.

这篇关于添加功能到Django FlatPages,而不用改变原来的Django应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆