Массовый импорт пользователей в Django

Я хочу массово импортировать пользователей из xlsx или csv в мою исходную модель User. Я не использую AbstractUser или AbstractBaseUser, и мне это не нравится, потому что мой сайт работает, и я не хочу злоупотреблять моей схемой.

Я использую оригинальную модель User, в которой я добавляю пользователей (регистрация пользователей запрещена), а дополнительные поля я храню в модели Profile с помощью отношения OneToOne.

Я не очень опытен, поэтому я пытался использовать фрагменты кода, которые я нашел, но я все еще не могу достичь своей цели. Если я пытаюсь использовать модуль import-export в моей панели администратора, он работает с другими моделями, но не с моделью User. Tablib или другие решения были бы также интересны для меня.

models.py (Я использую оригинальную модель User, которая посылает сигнал модели Profile при создании пользователя)

class Profile(models.Model):

def __str__(self):
    return str(self.user)

user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
date = models.DateField(auto_now_add=True, auto_now=False, blank=True)
projekt = models.ForeignKey(Projekt, on_delete=models.CASCADE, default=1)   

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    instance.profile.save()

forms.py

class RegisterForm(UserCreationForm):
email = forms.EmailField()

class Meta:
    model = User
    fields = ['username', 'email', 'last_name', 'first_name', 'password1', 'password2']

admin.py

from django.contrib.auth.models import User
from import_export.admin import ImportExportModelAdmin

@admin.register(User)
class UserAdmin(ImportExportModelAdmin):
    pass

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

Я получил следующее сообщение об ошибке:

django.contrib.admin.sites.AlreadyRegistered: The model User is already registered with 'auth.UserAdmin'.

Я понимаю, что моя модель User используется, но что я могу сделать?

Вернуться на верх