2

I am learning about Django and Rest Framework, I have a little project to practice, but I have an error when trying to access http://localhost:8000/admin :

TypeError: object 'module' is not subscribable.

These are the Python files I created:

admin.py:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.utils.translation import gettext as _

from . import models


class UserAdmin(BaseUserAdmin):
    ordering = ['id']
    list_display = ['email', 'name']
    fieldsets = (
        (None, {'fields': ('email', 'password')}),
        (_('Personal Info'), {'fields': ('name',)}),
        (
            _('Permissions'),
            {
                'fields': (
                    'is_active',
                    'is_staff',
                    'is_superuser',
                )
            }
        ),
        (_('Important dates'), {'fields': ('last_login',)}),
    )
    add_fieldsets = (
        (None, {
            'classes': ('wide',),
            'fields': ('email', 'password1', 'password2')
        }),
    )


admin.site.register(models.User, UserAdmin)

This is the Traceback:

Traceback (most recent call last):   File "/home/jesus/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/contrib/admin/sites.py", line 407, in login
    return LoginView.as_view(**defaults)(request)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/utils/decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/views/decorators/debug.py", line 76, in sensitive_post_parameters_wrapper
    return view(request, *args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/utils/decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/utils/decorators.py", line 130, in _wrapped_view
    response = view_func(request, *args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/utils/decorators.py", line 43, in _wrapper
    return bound_method(*args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
    response = view_func(request, *args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/contrib/auth/views.py", line 63, in dispatch
    return super().dispatch(request, *args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/views/generic/base.py", line 97, in dispatch
    return handler(request, *args, **kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/views/generic/edit.py", line 133, in get
    return self.render_to_response(self.get_context_data())

  File "/home/jesus/.local/lib/python3.8/site-packages/django/contrib/auth/views.py", line 96, in get_context_data
    context = super().get_context_data(**kwargs)

  File "/home/jesus/.local/lib/python3.8/site-packages/django/views/generic/edit.py", line 66, in get_context_data
    kwargs['form'] = self.get_form()

  File "/home/jesus/.local/lib/python3.8/site-packages/django/views/generic/edit.py", line 33, in get_form
    return form_class(**self.get_form_kwargs())

  File "/home/jesus/.local/lib/python3.8/site-packages/django/contrib/auth/forms.py", line 204, in __init__
    self.fields['username'].max_length = username_max_length

TypeError: 'module' object is not subscriptable
5
  • Did you try giving different name to your class? 'UserAdmin' class that you have defined may clash with the 'django.contrib.auth.admin' - UserAdmin. Commented Jul 14, 2020 at 19:15
  • Pretty sure this is a known bug in the admin... with python 3.8... Commented Jul 14, 2020 at 19:17
  • I try with another name, and I get the same error. Maybe can be there a problem in the models? Commented Jul 14, 2020 at 19:19
  • Nope, this is python 3.8 with Django 3.x. THere's no local code reference in the tb, I don't get how you managed to override self.fields with a module reference. Commented Jul 14, 2020 at 19:35
  • I cannot reproduce this with python 3.8.3 and Django 3.0.8. Whether I use decorator or not doesn't make a difference. How you get to an error in the AuthenticationForm is also beyond me. You error must be in code that you're not showing, cause I'm doing pretty much the same as you are with the UserAdmin. Commented Jul 14, 2020 at 20:29

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.