我喜欢从xlsx
或csv
向我的原始用户模型批量导入用户。我不使用AbstractUser
orAbstractBaseUser
我不喜欢,因为我的网站正在运行并且我不想滥用我的架构。
我正在使用添加用户的原始用户模型(不允许用户注册),并将额外的字段与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'.
我知道我的用户模型正在使用中,但我该怎么办?