I followed the django doc
<https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#a-full-example>
on creating a custom user model while extending the model itself with my
own fields. So it became like this:

    class MyUser(AbstractBaseUser, PermissionsMixin):
        email = models.EmailField(max_length=255, unique=True)
        first_name = models.CharField(max_length=35)
        last_name = models.CharField(max_length=35)
        username = models.CharField(max_length=70, unique=True)
        date_of_birth = models.DateField()
        is_active = models.BooleanField(default=True)
        is_admin = models.BooleanField(default=False)

        @property
        def is_staff(self):
            return self.is_admin

        def get_full_name(self):
            return ('%s %s') % (self.first_name, self.last_name)

        def get_short_name(self):
            return self.username

        objects = MyUserManager()
        USERNAME_FIELD = 'email'
        REQUIRED_FIELDS = ['first_name', 'last_name', 'username',
'date_of_birth']

And its manager to be:

    class MyUserManager(BaseUserManager):
        def create_user(self, email, first_name, last_name, username,
date_of_birth, password=None):
            if not email:
                raise ValueError('User must have an email address')

            user = self.model(
                email=self.normalize_email(email),
                first_name=first_name,
                last_name=last_name,
                username=username,
                date_of_birth=date_of_birth,
            )

            user.set_password(password)
            user.save(using=self._db)
            return user

        def create_superuser(self, email, first_name, last_name, username,
date_of_birth, password):
            user = self.create_user(
                email,
                first_name=first_name,
                last_name=last_name,
                username=username,
                date_of_birth=date_of_birth,
                password=password
            )
            user.is_admin = True
            user.save(using=self._db)
            return user

However, after I created the superuser while syncdb, when I login to the
admin panel, there is nothing to do. It displays:

* You don't have permission to edit anything.*

I saw some other post with the same problem and most of them suggested to
add *admin.autodiscover()* in the urls.py. But even this didn't help me.

This is the admin.py:

    class MyUserAdmin(UserAdmin):
        form = UserChangeForm
        add_form = UserCreationForm

        list_display = ('email', 'first_name', 'last_name', 'username',
'date_of_birth', 'is_admin')
        list_filter = ('is_admin',)
        fieldsets = (
            (None, {'fields': ('email', 'password')}),
            ('Personal info', {'fields': (('first_name', 'last_name'),
'username', 'date_of_birth')}),
            ('Permissions', {'fields': ('is_admin',)}),
        )

        add_fieldsets = (
            (None, {
                'classes': ('Wide',),
                'fields': ('email', 'first_name', 'last_name', 'username',
'date_of_birth')
            }),
        )
        search_fields = ('email',)
        ordering = ('email',)
        filter_horizontal = ()


    admin.site.register(MyUser, MyUserAdmin)

What am I doing wrong here? Please help me how to solve this problem. Thank
you.

-- 
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/CAM4YLW%2B3cBT8bLQL%2Bo1%3Dy6ZJ_7R8xUHvMd8AwfP_mxn%3DPRN6BA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to