在我的新Django应用程序中,我使用了第三部分的Photologue应用程序。 此应用程序运行良好,但我需要在其模型中添加一些字段而不更改Photologue应用程序的原始源代码。
有了这个片段,一切运作良好,但也许这不是最好的解决方案:
Photo.add_to_class("link", models.URLField(max_leng.... ))
我已经阅读了一些帖子,我应该使用OneToOneRelationField ...但是,在django管理应用程序中,我将有两个不同的Photo页面和新的PhotoLink类......
有人可以帮助我吗?
答案 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)