几天来我一直在寻找解决方案,但我无法使其工作。
场景是这样的:
我正在尝试使用 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:
...