私はすべての親フィールドを除外し、子供に明示的に定義されたフィールドだけを含めるという要件があります。簡潔にするためDjango-親クラスのフィールドを除外する方法
、ここに私のDjangoのコードは次のとおりです。
#app2 models.py
class EmployeeExtended(app1.Employee):
boss = models.ForeignKey(User, null=True, blank=True)
#app1 admin.py
class EmployeeExtendedInline(admin.StackedInline):
model = app2.EmployeeExtended
fields = ['boss']
class EmployeeAdmin(admin.ModelAdmin):
inlines = [EmployeeExtendedInline]
このコードが機能しています。私がfields
を与えないと、すべての親フィールドも含まれます。しかし、私は明示的にfields=['boss']
と書いてはいけません。あなたは
fields = [f.name for f in app1.EmployeeExtended._meta._fields() if f not in app1.Employee._meta._fields()]
で逃げることができるかもしれません。しかし、正直に言うとEmployeeExtendedOnly_Not_In_Its_Parent
はapp1.Employeeは抽象モデルか実際のモデルですか? – Meitham
それは本当のモデルです。データベースに独自のテーブルがあります。 EmployeeExtendedにはEmployeeに対して暗黙のfkがあります。 – jerrymouse