我有一个要求,我想要排除所有父字段,只包括在child中明确定义的字段。
为简洁起见,这是我的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']
。相反,我想要像:
for field in EmployeeExtendedOnly_Not_In_Its_Parent:
fields.append(field)
请为EmployeeExtendedOnly_Not_In_Its_Parent
答案 0 :(得分:3)
你可能能够逃脱
fields = [f.name for f in app1.EmployeeExtended._meta._fields() if f not in app1.Employee._meta._fields()]
但是,说实话,这很难看,我不明白为什么你扩展了员工。扩展在两个模型之间制作OneToOneKey。看来你需要的是一个ForeignKey。