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>

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to