从这个问题扩展:Can "list_display" in a Django ModelAdmin display attributes of ForeignKey fields?,是否可以做这样的事情:
class MyModelInline(admin.StackedInline):
model = MyModel
extra = 1
fields = ('my_field',)
def my_field(self, obj):
return obj.one_to_one_link.my_field
如果这样的事情是可能的,它将解决我当前的大多数Django问题,但上面的代码不起作用:Django(正确地)抱怨表单中没有my_field
。
答案 0 :(得分:1)
您可以这样做,但您还必须将my_field
添加到MyModelInline
班级的readonly_fields
属性中。
fields = ('my_field',)
readonly_fields = ('my_field',)
来自docs:
与list_display不同,fields选项可能只包含模型上的字段名称或表单指定的表单。它只有在readonly_fields中列出时才包含callables。
如果您需要该字段可编辑,您应该可以使用自定义表单执行此操作,但处理它需要更多的工作。