アプリケーションの管理部分 (django スイートを使用) のプロキシ モデルへの ForeignKey によって参照されるオブジェクトをインライン (ポップアップ) で編集しようとすると、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
ここでエレガントな修正を提案できる人はいますか?