Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

468
Views
Personalizando UserChangeForm en django

Quiero eliminar el campo 'grupos' del UserChangeForm incorporado y agregar mi propio campo "Rol". ¿Cómo manejar eso? Creé mi clase que hereda de UserChangeForm y fui a eliminar de alguna manera pero sin cambios.

 class CustomUserChangeForm(UserChangeForm): def __init__(self, *args, **kwargs): super(CustomUserChangeForm, self).__init__(*args, **kwargs) print(self.fields) class Meta(UserChangeForm.Meta): fields = () exclude = ('groups',) class CustomUserAdmin(UserAdmin): change_form = CustomUserChangeForm def __init__(self, *args, **kwargs): super(UserAdmin, self).__init__(*args, **kwargs) UserAdmin.list_display = ('username', 'is_active', 'email', 'date_joined', 'user_role', 'is_staff', 'is_superuser') class RoleAdmin(admin.ModelAdmin): fields = ('name', 'role_permissions') admin.site.unregister(Group) admin.site.unregister(User) admin.site.register(Role, RoleAdmin) admin.site.register(User, CustomUserAdmin)
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Puede heredar el Meta del UserChangeForm y reescribir el campo de exclusión para exclude los groups :

 class CustomUserChangeForm(UserChangeForm): class Meta( UserChangeForm.Meta ): fields = None exclude = ('groups',)

Para el sitio de administración puede trabajar con:

 from django.contrib.auth import get_user_model class CustomUserAdmin (UserAdmin): form = CustomUserChangeForm list_display = ('username', 'is_active', 'email', 'date_joined', 'user_role', 'is_staff', 'is_superuser') User = get_user_model() admin.site. unregister(User) admin.site.register(User, CustomUserAdmin )
over 4 years ago · Santiago Trujillo Report

0

Eliminé UserChangeForm y defino conjuntos de campos en CustomUseAdmin de esta manera: https://github.com/django/django/blob/main/django/contrib/auth/admin.py#L45

Y funciona correctamente, pero no puedo agregar mi modelo de 'Rol' aquí

 class CustomUserAdmin(UserAdmin): fieldsets = ( (None, {'fields': ('username', 'password')}), (_('Permissions'), { 'fields': ('is_active', 'is_staff', 'is_superuser', 'user_role', 'user_permissions'), }), (_('Important dates'), {'fields': ('last_login', 'date_joined')}), ) def __init__(self, *args, **kwargs): super(UserAdmin, self).__init__(*args, **kwargs) UserAdmin.list_display = ('username', 'is_active', 'email', 'date_joined', 'user_role', 'is_staff', 'is_superuser')

Campo(s) desconocido(s) (user_role) especificados para Usuario. Comprobar campos/conjuntos de campos/excluir atributos de la clase CustomUserAdmin.

 class Role(models.Model): name = models.CharField(max_length=100, unique=True) user = models.OneToOneField(User, related_name="user_role", on_delete=models.CASCADE) role_permissions = models.ManyToManyField(Permission, related_name="role_permissions") class Meta: app_label = 'auth'
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!