Показать поля для добавления пароля в пользовательскую модель пользователя - Django
У меня есть пользовательская модель пользователя. Я хочу, чтобы админ мог создавать новые аккаунты из панели администратора. Регистрация класса не помогает.
admin.site.register(CustomUser)
*Это исключает возможность двойного ввода пароля
Поэтому я пробую следующее решение:
from django.contrib.auth.admin import UserAdmin
admin.site.register(CustomUser, UserAdmin)
* В приведенном выше варианте у меня есть возможность ввести пароль дважды (когда я создаю пользователя), но другие поля из моей пользовательской модели пользователя исчезают.
class CustomUser(AbstractUser):
name = models.CharField(max_length=50, blank=True, null=True)
surname = models.CharField(max_length=50, blank=True, null=True)
account_type = models.ForeignKey(Locationd, on_delete=models.CASCADE, blank=True, null=True
Как добавить возможность создавать учетные записи в панели администратора, задавая пароль, который может быть отправлен новому пользователю, и редактировать все поля из класса пользователя custome.
)
Вы можете использовать свою собственную форму Django
from .models import User
from .forms import SignUpForm
from django.contrib.auth.admin import UserAdmin
from django.contrib import admin
class ManagingUsers(UserAdmin):
add_form = SignUpForm
list_display = ['__str__']
search_fields = ['email']
readonly_fields = ['date_joined', 'last_login']
ordering = ('id',)
filter_horizontal = []
list_filter = []
add_fieldsets = (
('Add a new user', {
'classes':('wide',),
'fields': ('first_name', 'last_name' ,'email', 'birthday', 'password1', 'password2', 'avatar', 'cover_pic', 'validated', 'is_admin', 'is_staff', 'is_active', 'is_superuser'),
}),
)
fieldsets = (
(None, {
'fields': ('first_name', 'last_name', 'bio' ,'email', 'birthday', 'avatar', 'cover_pic', 'is_admin', 'is_staff', 'is_active', 'is_superuser'),
}),
)
admin.site.register(User, ManagingUsers)
Это код из старого проекта, поэтому измените названия полей на те, которые вам нужны
Вам нужно снять регистрацию модели user
, а затем добавить вашего пользовательского пользователя
from django.contrib.auth.models import User
admin.site.unregister(User)
admin.site.register(CustomUser, UserAdmin or YourCustomAdminSettings)