2

私のモデル.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 を使用したこれに対する適切な解決策はありますか、またはこれらのモデル フォームを適切に表示するには、新しいフォームとビューを作成する必要がありますか?

4

0 に答える 0