0

我喜欢从xlsxcsv向我的原始用户模型批量导入用户。我不使用AbstractUserorAbstractBaseUser我不喜欢,因为我的网站正在运行并且我不想滥用我的架构。

我正在使用添加用户的原始用户模型(不允许用户注册),并将额外的字段与OneToOne关系存储在我的个人资料模型中。

我没有那么有经验,所以我尝试使用我找到的代码片段,但我仍然无法实现我的目标。如果我尝试import-export在我的管理面板中使用模块,它适用于其他模型,但不适用于 User 模型。Tablib或其他解决方案对我来说也很有趣。

models.py (我使用的是原始用户模型,该模型在创建用户时向 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()

表格.py

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

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

管理员.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'.

我知道我的用户模型正在使用中,但我该怎么办?

4

0 回答 0