1

几天来我一直在寻找解决方案,但我无法使其工作。

场景是这样的:

我正在尝试使用 django import-export 导入数据(例如 CountryCondition 类型),在此之前,我想验证它们。如果某些行包含无效数据,我想创建一个带有错误的 Message 对象并保存它。Message 模型对 User 有一个外键,因此当用户登录时,他可以看到与他相关的所有消息。

这是我的代码

消息模型:

class Message(models.Model):
    """ Message. """

    user = models.ForeignKey(User)
    msg_text = models.CharField(max_length=512, verbose_name=_('Message'))

CountryConditions模型资源:

class CountryConditionsResource(resources.ModelResource):

    def skip_row(self, instance, original):
        ...
        message = Message(msg_text='a message')
        with transaction.atomic():
            message.save()

我想要的是为当前登录的用户保存消息。

非常感谢您提前

编辑 1: CountryConditions模型(根据@Rahul Gupta 请求

class CountryConditions(models.Model):

    country = models.OneToOneField(Country, verbose_name=_('country_name'))
    iec_current = models.DecimalField( max_digits=11, decimal_places=2, default=0.00, verbose_name=_('iec_current'))
    iec_current_one = models.DecimalField(max_digits=11, decimal_places=2, default=0.00, verbose_name=_('iec_current_one'))
    iec_final = models.DecimalField(max_digits=11, decimal_places=2, default=0.00, verbose_name=_('iec_final'))

    def __str__(self):
        return 'Conditions for %s' % self.country.name

    def save(self, force_insert=False, force_update=False, using=None, update_fields=None):
        self.calculate_iec_final()
        super(CountryConditions, self).save()

    def calculate_iec_final(self):
        ...

    class Meta:
        ...
4

0 回答 0