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 <mic...@sawicz.net>
signature.asc
Description: This is a digitally signed message part