Some more details:
I'm using Django 1.6.
When I debug the site, I see that users.admin.CustomUserAdmin is scanned,
when starting the App.
But when loading the UserChangeForm the 'get_fieldsets' method from
django.contrib.auth.admin.UserAdmin is used.
The custom UserChangeForm looks kike this:
class UserChangeForm(forms.ModelForm):
"""A form for updating users. Includes all the fields on
the user, but replaces the password field with admin's
password hash display field.
"""
password = ReadOnlyPasswordHashField(label=_("Password"),
help_text=_("Raw passwords are not stored, so there is no way to see "
"this user's password, but you can change the password "
"using <a href=\"password/\">this form</a>."))
username = forms.CharField(label=_('nickname'), max_length=64,
help_text=_('How do people call you?'))
email = forms.EmailField(label=_('email address'), max_length=254)
class Meta:
model = User
fields = '__all__'
def __init__(self, *args, **kwargs):
super(UserChangeForm, self).__init__(*args, **kwargs)
f = self.fields.get('user_permissions', None)
if f is not None:
f.queryset = f.queryset.select_related('content_type')
def clean_password(self):
# Regardless of what the user provides, return the initial value.
# This is done here, rather than on the field, because the
# field does not have access to the initial value
return self.initial["password"]
Somebody has an idea?
Regards,
Henri
Am Freitag, 26. Juni 2015 02:16:24 UTC+2 schrieb Henri:
>
> I'm using a custom user model and a custom UserAdmin.
> I try do overwrite the 'get_fieldsets' method to change some fields and
> hide some others, bud django admin still uses the 'get_fieldsets' method
> from django.contrib.auth.admin.UserAdmin.
>
> My CustomUserAdmin Class:
>
> from django.contrib.auth.admin import UserAdmin
> from users.models import User # custom user model
>
>
> class CustomUserAdmin(UserAdmin):
>
> add_fieldsets = (
> (None, {
> 'classes': ('wide',),
> 'fields': ('email', 'username', 'password1', 'password2')
> }),
> )
>
> # The forms to add and change user instances
> form = UserChangeForm
> add_form = UserCreationForm
>
> # The fields to be used in displaying the User model.
> # These override the definitions on the base UserAdmin
> # that reference specific fields on auth.User.
> list_display = ('email', 'username', 'first_name', 'last_name',
> 'is_active', 'is_staff',
> 'is_superuser')
> list_filter = ('is_active', 'is_staff', 'is_superuser')
> search_fields = ('email', 'first_name', 'last_name', 'username')
> ordering = ('email',)
> filter_horizontal = ('groups', 'user_permissions',)
>
>
> def get_fieldsets(self, request, obj=None):
> if not obj:
> return self.add_fieldsets
>
> if request.user.is_superuser and request.user.pk != obj.pk:
> perm_fields = ('is_active', 'is_staff', 'is_superuser',
> 'groups', 'user_permissions')
> else:
> perm_fields = ('is_active', 'is_staff', 'groups')
>
> return [(None, {'fields': ('email', 'password')}),
> (_('Personal info'), {'fields': ('first_name', 'last_name'
> , 'username', 'biography')}),
> (_('Permissions'), {'fields': perm_fields}),
> (_('Important dates'), {'fields': ('last_login',
> 'date_joined')})]
>
>
> admin.site.register(User, CustomUserAdmin)
>
> Some body have an idea, whats going on?
> I'm working on this for days.
> Please help.
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/be0b1c0b-bc31-4ddb-ba5f-42b428a925e6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.