内容类型下拉列表未显示Django管理表单

2024-05-06 09:29:15 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个Post模型,当我在django admin中打开它添加posts时,我看到一个字段内容类型,但是没有下拉列表来选择内容类型。我是不是做错了什么?在

class Post(models.Model):

    FEATURE_LIMITS = models.Q(app_label=u'forums', model=u'forum')

    content_type = models.ForeignKey(ContentType, limit_choices_to=FEATURE_LIMITS, on_delete=models.CASCADE)
    object_id = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type', 'object_id')

管理员py对于帖子

^{pr2}$

有一个模型论坛,它与帖子有着一般的联系。在

class Forum(models.Model):
    # other fields
    posts = GenericRelation(Post)

post字段在django admin上不可见(其他字段可见)。在

管理员py论坛

# imports

admin.site.register(forums_models.Forum)

如果我对管理员py公司名称:

class PostInline(GenericTabularInline):
    model = Post

class ForumAdmin(admin.ModelAdmin):
    inlines = [
        PostInline,
    ]

admin.site.register(forums_models.Forum, ForumAdmin)

{cd1>继续加载页面。在


Tags: djangopy模型类型内容objectadminmodels
2条回答

您似乎配置了错误的应用程序。在

我的项目结构

app
|-settings/
|-forums/
| models.py
| admin.py
|-posts/
| models.py
| admin.py

所以帖子/模型.py

^{pr2}$

帖子/管理员py

from .models import Post

class PostInline(GenericTabularInline):
    model = Post

论坛/模型.py

class Forum(models.Model):
    # other fields
    name = models.CharField(max_length=100)
    posts = GenericRelation('posts.Post')

论坛/管理员py

from .models import Forum
from posts.admin import PostInline

@admin.register(Forum)
class ForumAdmin(admin.ModelAdmin):
    inlines = [
        PostInline,
    ]

每件事都很有魅力。在

我猜你有无限循环,因为试图在错误的应用程序中注册模型

我使用的是admin.widgets.ForeignKeyRawIdWidgetwidget,它阻止外键字段正常显示。因为

content_type = models.ForeignKey(ContentType, limit_choices_to=FEATURE_LIMITS, on_delete=models.CASCADE)

content_type是外键字段,没有下拉列表。 为了防止这种情况发生,请在管理员py公司名称:

^{pr2}$

相关问题 更多 >