[英]django admin make a field read-only when modifying obj but required when adding new obj
[英]adding required email field to django when creating users with admin
使用Django admin創建/添加用戶時; 這怎么可以定制?
例如,目前提示輸入用戶名和密碼。 但是,我想自定義它還有其他必填字段,例如'email'?
關於admin用戶身份驗證的django教程不清楚?
將它放在models.py中。
from django.contrib.auth.models import User
User._meta.get_field('email').blank = False
然后運行makemigrations。 然后運行遷移。
完成!
編輯:感謝upvote家伙!
在創建用戶時向表單添加電子郵件的示例。 在項目admin.py中添加了以下內容:
從django import forms enter code here
from django.contrib import admin
from django.contrib.auth import admin as upstream
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.contrib.auth.models import Group, User
from django.utils.translation import ugettext, ugettext_lazy as _
class UserAdmin(upstream.UserAdmin):
fieldsets = (
(None, {'fields': ('username', 'password','email')}),
(_('Personal info'), {'fields': ('first_name', 'last_name')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
'groups', 'user_permissions')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'password1', 'password2', 'email')}
),
)
form = UserChangeForm
add_form = UserCreationForm
try:
admin.site.unregister(User)
except NotRegistered:
pass
admin.site.register(User, UserAdmin)
這是您可以自定義用戶管理員的方法:
from django.contrib import admin
from django.contrib.auth import admin as upstream
# custom admin class for the User model, subclassing Django's one
class UserAdmin(upstream.UserAdmin):
add_form_template = ...
add_form = ...
add_fieldsets = ...
# unregister any existing admin for the User model and register mine
try:
admin.site.unregister(User)
except NotRegistered:
pass
admin.site.register(User, UserAdmin)
我離開的部分...
是你需要做的改變admin提示用戶創建的方式自定義設置。
在django/contrib/auth/admin.py
查找原始代碼並修改以品嘗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.