私のモデル.py
class PagePlaceholder(models.Model):
content_type = models.ForeignKey()
object_id = models.PositiveIntegerField()
display_content = generic.GenericForeignKey('content_type', 'object_id')
class Page(models.Model):
page_name = models.CharField(max_length=1000,default="sample_page")
placeholder = models.ManyToManyField('PagePlaceholder')
プレースホルダーは、一般的な外部キー関係によって 4 つのクラスのいずれかを参照できます。page には、ページに多数の異なるモデルを含めることができることを示すために、プレースホルダーとの多対多の関係があります。
そして私のadmin.pyも同じです。
class PagePlaceholderAdmin(admin.ModelAdmin):
pass
class PageInline(GenericStackedInline):
model = PagePlaceholder
class PageAdmin(admin.ModelAdmin):
inlines = [PageInline,]
今私が欲しいのは、ページの管理ビューで、ページプレースホルダーの表示コンテンツ オブジェクトを編集するためのフォームを表示することです。そのインラインを取得しようとすると、オブジェクトがクラスではないというエラーが表示されます。admin.py を使用したこれに対する適切な解決策はありますか、またはこれらのモデル フォームを適切に表示するには、新しいフォームとビューを作成する必要がありますか?