当我尝试将 ForeignKey 引用的对象内联(在弹出窗口中)编辑到我的应用程序管理部分(使用 django 套件)中的代理模型时,出现 404 错误。
我的基本模型和代理模型:
class Book(MyBase):
"""
Base book model
"""
# [...]
class SpecialBook(Book):
"""
Need to leave this separated as a proxy model.
"""
class Meta:
proxy = True
我用它的流派装订书籍的模型。该字段可以通过文档book
保存对Book
和的引用:SpecialBook
[proxy] 类在与其父级相同的数据库表上运行
class BookGenre(MyBase):
"""
bind books with it's genre
"""
book = models.ForeignKey(Book)
genre = models.ForeignKey(Genre)
admin.py
管理流派的东西:
class BookGenreInline(suit.admin.SortableTabularInline):
model = BookGenre
# [...]
@admin.register(Genre)
class GenreAdmin(AdminBase):
inlines = [
BookGenreInline,
# [...],
]
fields = [...]
以上为我生成了一个管理页面,其中包含一个带有现有Book
(和SpecialBook
)对象的选择字段。在选择的右侧,我有“更改选择”和“添加另一个”按钮(我相信从这里导入的模板)。唯一的问题是编辑选项仅在选择 Book 对象时有效,不适用于 SpecialBook。据我所知,这与此处change_related_template_url
找到的内容未更新这一事实有关。编辑对象的 url 看起来像并且可以正常工作,但在我选择对象时不会改变。Book
/admin/books/book/ID[...]
/admin/books/specialbook/ID[...]
SpecialBook
有人可以在这里提出一个优雅的解决方案吗?