如何向 Django 的“用户添加”添加额外的必填字段管理页面?

发布于 2024-10-06 18:00:33 字数 105 浏览 3 评论 0原文

当向我的 Django 应用程序添加新用户时,我想确保管理页面要求管理员包含“电子邮件”字段。

我尝试修改 UserAdminForm 对象,但到目前为止我还是空的。有什么建议吗?

When adding a new user to my Django application, I'd like to ensure that the administration page requires an administrator to include the "email" field.

I've tried tinkering with the UserAdminForm object, but I've come up empty thus far. Any tips?

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

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

发布评论

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

评论(1

浪漫之都 2024-10-13 18:00:33

您需要将类似这样的内容添加到项目的 admin.py 文件之一:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.models import Group, User


# Override username field require email address
class UserCreationForm2(UserCreationForm):
    email = forms.CharField(max_length=75, required=True)

class UserChangeForm2(UserChangeForm):
    email = forms.CharField(max_length=75, required=True)

class UserAdmin2(UserAdmin):
    form = UserChangeForm2
    add_form = UserCreationForm2

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

本质上,将电子邮件字段设为必填,取消注册内置管理员,并使用覆盖注册新管理员。

You'll want to add something like this to one of your project's admin.py files:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.models import Group, User


# Override username field require email address
class UserCreationForm2(UserCreationForm):
    email = forms.CharField(max_length=75, required=True)

class UserChangeForm2(UserChangeForm):
    email = forms.CharField(max_length=75, required=True)

class UserAdmin2(UserAdmin):
    form = UserChangeForm2
    add_form = UserCreationForm2

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

Essentially, make the email field required, unregister the built-in admin, and register a new admin with the override.

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