Python 在django admin中将外部模型字段显示为可编辑
我有一个带有外键的Django型号:Python 在django admin中将外部模型字段显示为可编辑,python,django,django-admin,Python,Django,Django Admin,我有一个带有外键的Django型号: class Library: name=models.CharField() class Book: title=models.CharField() library=models.ForeignKey(Library) models.py 管理员 在管理中,我想显示Book并在Book视图中显示Library.name的可编辑字段(而不是内联): 作为只读,这很容易(只需在Book模型中创建一个返回库名值的方法),但我无法使其对可编辑字段起
class Library:
name=models.CharField()
class Book:
title=models.CharField()
library=models.ForeignKey(Library)
models.py
管理员
在管理中,我想显示Book
并在Book
视图中显示Library.name
的可编辑字段(而不是内联):
作为只读,这很容易(只需在Book模型中创建一个返回库名值的方法),但我无法使其对可编辑字段起作用,我尝试使用
字段=('title','library.name')
和字段=('title','library_uname')
但没有成功尝试在类似的模型中使用相关的库名
library=models.ForeignKey(library,related_name=“library”)
然后使用
字段=('title','library\uu name')
它应该可以工作。您需要一个内联模型管理员:
我不能这样做。更改相关的\u名称似乎不会更改
书籍
视图中的字段
的行为。。如果可能,请提供更多详细信息异常类型:FieldError异常值:为图书指定的未知字段(库名称)。检查BookAdmin类的字段/字段集/排除属性。这与我在编辑您的问题并显示您编写的管理类之前遇到的错误相同。您希望在添加对象时显示此字段,还是希望它显示在用于列出项目的类页面中?请尝试在中执行类似操作
class BookAdmin(admin.ModelAdmin):
extra = 0
fields = ['title', 'library__name'] # library__name not found
admin.site.register(Book, BookAdmin)
> Book
* Title: "Foo"
* Library Name: "Bar"