Django将字段添加到现有模型应用程序

时间:2014-01-10 12:11:49

标签: python django

在我的新Django应用程序中,我使用了第三部分的Photologue应用程序。 此应用程序运行良好,但我需要在其模型中添加一些字段而不更改Photologue应用程序的原始源代码。

有了这个片段,一切运作良好,但也许这不是最好的解决方案:

Photo.add_to_class("link", models.URLField(max_leng.... ))

我已经阅读了一些帖子,我应该使用OneToOneRelationField ...但是,在django管理应用程序中,我将有两个不同的Photo页面和新的PhotoLink类......

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

如果您使用的是OneToOneField,则可以使用“扩展”模型作为要扩展的模型的内联。首先取消注册原始管理类,然后使用我们的变体覆盖它:

from otherapp.admin import OriginalFooAdmin
from otherapp.models import Foo
from yourapp.models import YourExtension
from django.contrib import admin

admin.site.unregister(Foo)

class ExtensionInline(admin.StackedInline):
    model = YourExtension

class NewFooAdmin(OriginalFooAdmin):
    inlines = OriginalFooAdmin.inlines + [ExtensionInline]
admin.site.register(Foo, NewFooAdmin)