【问题标题】:Django inlinemodeladmin extra option not workingDjango inlinemodeladmin 额外选项不起作用
【发布时间】:2011-05-31 04:53:02
【问题描述】:

我正在将用户配置文件内联添加到 django admin 上的编辑用户页面。到目前为止,唯一的问题是无论我在“额外”选项中输入什么值,页面总是显示 1 个额外用户配置文件记录的字段。 我实际上不想显示任何额外的记录,但我不能让额外的记录消失。希望有人可以提供帮助,这让我很难过。

代码如下:

#admin.py        
class UserProfileInline(admin.StackedInline):
    model = auth_user_profiles
    extra = 0
    raw_id_fields = ('organisation_id','advertiser_id','division_id','rtp_id','person_id','hp_organisation_id')
    exclude = ('specialist_id',)

class UserAdmin(admin.ModelAdmin):
    list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff', 'is_active', 'is_superuser', 'last_login', 'date_joined')
    list_filter = ('is_staff', 'is_superuser', 'is_active')
    search_fields = ('username','email','first_name','last_name')
    inlines = (UserProfileInline,)

admin.site.unregister(User)
admin.site.register(User, UserAdmin)

这是 django 文档中的相关点:https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#inlinemodeladmin-options

谢谢!

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    您是否也尝试将max_num 设置为 1?

    如果 max_num 的值更大 比现有相关的数量 对象,最多额外的空白 表单将被添加到表单集中,所以 只要表格总数不 不超过 max_num

    这来自docs about model formsets,但它也应该适用于InlineAdmin

    【讨论】:

    • 感谢您的建议,我不知道 max_num 参数。不幸的是,它没有帮助,就像额外的参数一样,它没有任何区别。我一定在这里做错了什么,但仍然不知道是什么......
    • 即使您将两个值都设置为 0?我刚刚意识到 extra 在您的示例中设置为 0 。 max_num 必须小于 extra(或等于)以防止显示更多表单。
    • 在这个例子中只有max_num被设置为1,而extra没有被定义:blog.timc3.com/2010/02/18/extending-djangos-user-admin这可能值得一试。
    • 感谢您的帮助,现在我已经更新了管理 js 文件,extra 和 max_num 都按预期工作。
    【解决方案2】:

    好的,我现在想通了。确实有点愚蠢的错误。

    我不久前升级了我的 django 版本,但我忘记更新 django 管理媒体文件。

    当我检查我的 apache 日志时,我发现了一些与 inlines.js 和其他几个文件有关的 js 错误。

    用 django 1.3 包中的更新我的管理 js 文件解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      相关资源
      最近更新 更多