为什么我的 Django 内联显示单个模型的多种形式?

发布于 2024-12-04 23:32:00 字数 534 浏览 0 评论 0原文

我正在尝试将用户的管理表单和我的 UserProfile 模型结合起来。我在此处找到了操作方法,有效。我现在有这个:

#DJANGOPROJECT/generic/admin.py
class UserProfileInline(admin.TabularInline):
    model = UserProfile

class UserAdmin(admin.ModelAdmin):
    inlines = [UserProfileInline]

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

但是,在管理中生成的表单包含用户配置文件表单的五个实例,而不是一个。我不明白这是为什么?

I'm attempting to combine the admin form for the User and my UserProfile model. I found out how to do it here, which works. I have this now:

#DJANGOPROJECT/generic/admin.py
class UserProfileInline(admin.TabularInline):
    model = UserProfile

class UserAdmin(admin.ModelAdmin):
    inlines = [UserProfileInline]

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

However, the form generated in the admin contains five instances of the user profile form, instead of one. I don't understand why this is?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽清梦 2024-12-11 23:32:00

https://docs.djangoproject.com/ en/dev/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin

InlineModelAdmin.extra 这控制了额外表单的数量
除了初始表单之外,还会显示表单集。请参阅
表单集文档以获取更多信息。

Django 1.2 中的新功能:请参阅发行说明 对于具有以下功能的用户
支持 JavaScript 的浏览器,提供“添加另一个”链接
允许添加任意数量的附加内联
这些是由于额外参数而提供的。

如果当前显示的数量过多,则不会出现动态链接
表单超过 max_num,或者用户没有 JavaScript
已启用。

InlineModelAdmin.max_num 这控制表单的最大数量
在内联中显示。这与数字没有直接关系
对象,但如果值足够小就可以。请参阅限制
可编辑对象的数量以获取更多信息。

尝试将 max_num 设置为 1

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin

InlineModelAdmin.extra This controls the number of extra forms the
formset will display in addition to the initial forms. See the
formsets documentation for more information.

New in Django 1.2: Please, see the release notes For users with
JavaScript-enabled browsers, an "Add another" link is provided to
enable any number of additional inlines to be added in addition to
those provided as a result of the extra argument.

The dynamic link will not appear if the number of currently displayed
forms exceeds max_num, or if the user does not have JavaScript
enabled.

InlineModelAdmin.max_num This controls the maximum number of forms
to show in the inline. This doesn't directly correlate to the number
of objects, but can if the value is small enough. See Limiting the
number of editable objects for more information.

Try to set max_num to 1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文