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



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

有了这个代码片段,一切正常,但也许这不是最好的解决方案:

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

我已经阅读了一些应该使用一对一关系字段的帖子......但是,在 django 管理应用程序中,我将有两个不同的表单页面 照片 和新的 PhotoLink 类......

有人可以帮助我吗?

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

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)

最新更新