Добавление атрибута к модели администратора Django

Я пытаюсь добавить атрибут к моей модели администратора пользователя, но это не работает,

вот что мне удалось сделать (я хочу добавить поле бездействия):

    from django.contrib import admin
    from .models import User
    
    
    class usersAdmin(admin.ModelAdmin):
        list_display = ('username', 'first_name', 'last_name', 'inactivity')


    admin.site.register(User, usersAdmin)

Вот код моей модели:

class User(models.Model):
    username = models.TextField(max_length=140, default='uid', primary_key=True)
    first_name = models.TextField(max_length=140, default='cn')
    last_name = models.TextField(max_length=140, default='givenName')
    inactivity = models.IntegerField(default=500)

    def _str_(self):
        return self

Ошибка возникает, когда я пытаюсь получить доступ к добавленному полю из моих представлений:

class MyTokenObtainPairSerializer(TokenObtainPairSerializer):
    def validate(self, attrs):
        data = super().validate(attrs)
        data['username'] = self.user.username
        data['first_name'] = self.user.first_name
        data['last_name'] = self.user.last_name
        data['inactivity'] = self.user.inactivity
        print(self.user)
        return data

ошибка говорит:

Traceback (most recent call last):
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
    response = get_response(request)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\django\views\generic\base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\rest_framework\views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
    raise exc
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\rest_framework\views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\rest_framework_simplejwt\views.py", line 27, in post
    serializer.is_valid(raise_exception=True)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\rest_framework\serializers.py", line 220, in is_valid
    self._validated_data = self.run_validation(self.initial_data)
  File "C:\Users\oussa\.virtualenvs\SYNEIKA-v3YFud-O\lib\site-packages\rest_framework\serializers.py", line 422, in run_validation
    value = self.validate(value)
  File "C:\Users\oussa\OneDrive\Documents\GitHub\SYNEIKA\backend\ldapapp\views.py", line 85, in validate
    data['inactivity'] = self.user.inactivity
AttributeError: 'User' object has no attribute 'inactivity'

PS: Я использую LDAP auth backend в set.py У меня есть:

import ldap
from django_auth_ldap.config import LDAPSearch, LDAPGroupQuery,PosixGroupType

AUTH_LDAP_SERVER_URI = 'ldap://192.0.0.1'
AUTH_LDAP_BIND_DN = 'cn=admin,dc=syneika,dc=com'
AUTH_LDAP_BIND_PASSWORD = '123'
AUTH_LDAP_USER_SEARCH = LDAPSearch('ou=users,dc=syneika,dc=com',ldap.SCOPE_SUBTREE, '(uid=%(user)s)')
AUTH_LDAP_GROUP_SEARCH = LDAPSearch('ou=groups,dc=syneika,dc=com',ldap.SCOPE_SUBTREE, '(objectClass=top)')
AUTH_LDAP_GROUP_TYPE = PosixGroupType(name_attr="cn")
AUTH_LDAP_MIRROR_GROUPS = True

    # Populate the Django user from the LDAP directory.
AUTH_LDAP_REQUIRE_GROUP = (
        LDAPGroupQuery("cn=Active,ou=groups,dc=syneika,dc=com")
    )

AUTH_LDAP_USER_ATTR_MAP = {
        "first_name": "givenName",
        "last_name": "sn",
        "email": "mail",
        "username": "uid",
        "password": "userPassword"
}
AUTH_LDAP_PROFILE_ATTR_MAP = {
        "home_directory": "homeDirectory"
}
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
        "is_active": (
        LDAPGroupQuery("cn=Active,ou=groups,dc=syneika,dc=com")
    ),
        "is_staff": (
        LDAPGroupQuery("cn=Staff,ou=groups,dc=syneika,dc=com")
    ),
        "is_superuser": (
        LDAPGroupQuery("cn=Superuser,ou=groups,dc=syneika,dc=com")
    )
}
    
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_FIND_GROUP_PERMS = True
AUTH_LDAP_CACHE_TIMEOUT = 3600
    
AUTH_LDAP_FIND_GROUP_PERMS = True
    
    # Keep ModelBackend around for per-user permissions and maybe a local
    # superuser.
AUTHENTICATION_BACKENDS = (
        'django_auth_ldap.backend.LDAPBackend',
        'django.contrib.auth.backends.ModelBackend',
)

Пожалуйста, зайдите в корневой каталог и удалите все миграции из корневого каталога, оставив только файл init, затем вернитесь в командную консоль и примените миграции, прежде чем синхронизировать их с базой данных с помощью migrate. Ваша проблема, похоже, возникает из-за - fake migrate, поскольку он не синхронизирует его с базой данных.

Я понял, что в моем представлении (TokenView) я ссылаюсь на пользователя Auth, а не на модель User в моих моделях.

Итак, чтобы добавить другие атрибуты к аутентифицирующему пользователю (предоставляемые Django по умолчанию), я должен связать пользователя Auth с другой моделью и добавить атрибуты, которые я хочу, я нашел это здесь : Django Profiles

from django.db import models
from django.contrib.auth.models import User


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    activity = models.IntegerField(default=500)

    def _str_(self):
        return self
Вернуться на верх