如何从 UserProfile Model Admin 导入 User 和 UserProfile 数据?

问题描述

我有这个自定义用户模型-

class User(AbstractUser):
    email = models.EmailField(unique=True)
    picture = models.ImageField(upload_to='profile_picture',null=True,blank=True)
    updated_on = models.DateTimeField(auto_Now=True)
    date_activated = models.DateTimeField(null=True,blank=True)

    username = None
    USERNAME_FIELD = 'email'
    required_FIELDS = []

    objects = UserManager()

    def __str__(self):
        return self.email

    class Meta:
        verbose_name = 'User'

和这个 UserProfile 模型-

class UserProfile(models.Model):
    user = models.OnetoOneField(User,related_name='userprofile',on_delete=models.PROTECT,primary_key=True)
    contact = models.CharField(max_length=20,blank=True,default='')
    about_me = models.TextField(null=True,blank=True)
    latitude = models.FloatField(validators=[MinValueValidator(-90),MaxValueValidator(90)],blank=True)
    longitude = models.FloatField(validators=[MinValueValidator(-180),MaxValueValidator(180)],blank=True )
    age = models.IntegerField(validators=[MinValueValidator(18),MaxValueValidator(100)],blank=True  )
    dob = models.DateField(null=True,)
    source_of_registration = models.ForeignKey('core.sourceOfRegistration',blank=True )
    interests = models.ManyToManyField('core.Interest')
    languages = models.ManyToManyField('core.SpokenLanguage')
    gender = models.ForeignKey('core.Gender',blank=True  )
    country = models.ForeignKey( 'core.Country',blank=True )
    state = models.ForeignKey('core.State',blank=True)
    city = models.ForeignKey('core.City',blank=True)
    zip_code = models.CharField(max_length=12,blank=True)
    is_profile_completed = models.BooleanField(default=False)
    profile_completed_on = models.DateTimeField(null=True,blank=True)
    created_on = models.DateTimeField(auto_Now_add=True)
    updated_on = models.DateTimeField(auto_Now=True)

    class Meta:
        verbose_name = 'User Profile'

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

    def clean(self):
        if self.dob:
            age_in_days = (datetime.date.today() - self.dob).days
            age_in_years = age_in_days / 365
            if age_in_years < 18:
                raise ValidationError(gettext_lazy('Age should be more or equal to 18.'))
            else:
                self.age = age_in_years

这是 UserProfileResource-

class UserProfileResource(resources.ModelResource):
    class Meta:
        model = UserProfile
        import_id_fields = (
            'user','city','state','country','gender','source_of_registration',)
        skip_unchanged = True
        report_skipped = False
        use_bulk= True
        fields = (
            'user','contact','about_me','longitude','latitude','age','dob','zip_code','is_profile_completed','created_on','updated_on','profile_completed_on',)

我想从一个地方导入 User 数据和 UserProfile 数据,UserProfileModelAdmin,我现在完全迷失了,任何人都可以给我一个提示,如何有效地使用 django_import_export 解决这个问题。

我也看过这个解决方案,但它对我不起作用- https://github.com/django-import-export/django-import-export/issues/319

谢谢,任何提示都将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)