Dnia 2011-07-06, śro o godzinie 14:40 -0700, galgal pisze:
> Full code:
> class UserProfileAdmin(UserAdmin):
> inlines = [UserProfileInline,]
> list_filter = ('userprofile__type','userprofile__cities',)
> search_fields = ['userprofile__type', 'username',
> 'userprofile__cities__name', 'email', 'first_name', 'last_name',]
Use tuples instead of lists, they're cheaper. And lists don't require
the trailing comma.
--8<--
> def get_fieldsets(self, request, obj=None):
> if obj:
> if request.user.id == 1:
> return self.declared_fieldsets
> else:
> if obj.get_profile().type==1:
> return (
> (None, {'fields': ('username', 'password')}),
> (_('Personal info'), {'fields': ('first_name',
> 'last_name', 'email')}),
> (_('Important dates'), {'fields':
> ('last_login', 'date_joined')}),
> )
> else:
> return (
> (None, {'fields': ('username', 'password')}),
> (_('Personal info'), {'fields': ('first_name',
> 'last_name', 'email')}),
> (_('Permissions'), {'fields': ('is_active',
> 'is_staff', 'user_permissions')}),
> (_('Important dates'), {'fields':
> ('last_login', 'date_joined')}),
> )
> else:
> return self.add_fieldsets
Why not using super().get_fieldsets() when there is no object or your
user isn't 1?
> def get_form(self, request, obj=None, **kwargs):
> if obj:
> if obj.get_profile().type==1:
> self.exclude = ('user_permissions',)
> return super(UserProfileAdmin, self).get_form(request,
> obj=None, **kwargs)
Should be obj=obj, not obj=None, you're always getting a new user form.
--
Michał (Saviq) Sawicz <[email protected]>
signature.asc
Description: This is a digitally signed message part

