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 django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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