1

关于 django 导入导出的快速问题。假设我有一个像docs中的模型,但有一些额外的约束(注意 Meta 类):

    class Book(models.Model):
        name = models.CharField('Book name', max_length=100)
        author = models.ForeignKey(Author, blank=True, null=True)
        author_email = models.EmailField('Author email', max_length=75, blank=True)
        imported = models.BooleanField(default=False)
        published = models.DateField('Published', blank=True, null=True)
        price = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
        categories = models.ManyToManyField(Category, blank=True)

        def __unicode__(self):
            return self.name

        class Meta:
            unique_together = ('name', 'author')

在批量上传时,理想情况下,我希望跳过任何包含错误的行(在这种情况下是重复的条目——但也可能是其他类型的“损坏”行)并继续上传的其余部分。应将损坏的行记录到包含相关行和带有异常名称的附加列的文件中。

有一个通用的 exceptions.py 文件:

class ImportExportError(Exception):
    """A generic exception for all others to extend."""
    pass


class FieldError(ImportExportError):
    """Raised when a field encounters an error."""
    pass 

但目前尚不清楚如何处理逐行情况和跳过。任何处理过此问题的人的帮助将不胜感激。

4

1 回答 1

-2

文档很清楚:

dry_run 是一个布尔值,它确定是对数据库进行更改还是仅模拟导入。它默认为假。

raise_errors 是一个布尔值。如果为 True,则导入应引发错误。默认为 False,这意味着最终的错误和回溯将保存在 Result 实例中。

于 2016-06-04T04:00:45.757 回答