在django admin中显示外部模型字段为可编辑

时间:2017-08-03 09:54:27

标签: python django django-admin

我有一个带外键的Django模型:

class Library:
  name=models.CharField()

class Book:
  title=models.CharField()
  library=models.ForeignKey(Library)

models.py

class BookAdmin(admin.ModelAdmin):
  extra = 0
  fields = ['title', 'library__name'] # library__name not found

admin.site.register(Book, BookAdmin)

admin.py

在管理员中,我想显示Book并在Library.name视图中显示Book可编辑字段(而不是内联方式) ):

> Book
  * Title: "Foo"
  * Library Name: "Bar"

简单地说,它很简单(只需在Book模型中创建一个返回库名称值的方法),但我无法使其适用于可编辑字段,我尝试使用fields=('title','library.name')fields=('title','library__name')没有成功

2 个答案:

答案 0 :(得分:0)

尝试在类似

的模型中使用related_name

library=models.ForeignKey(Library, related_name="library")

然后使用fields=('title','library__name'),它应该有效。

答案 1 :(得分:0)