将当前用户设置为已创建的django模型

时间:2015-07-11 15:09:31

标签: python django django-admin django-import-export

我一直在寻找解决方案,现在已经有几天了,我无法使其发挥作用。

情景如下:

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

这是我的代码

消息模型:

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

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

CountryConditions ModelResource:

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:
        ...

0 个答案:

没有答案