2016-05-31 166 views
0

关于django导入导出的一个简短问题。假设我有喜欢的人在docs的典范,但也有一些额外的限制(注意是元类):django导入导出中的异常处理

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 

但目前还不清楚如何处理与行的情况和跳跃行。来自任何处理此事的人的任何帮助将不胜感激。

回答

0

documentation是相当清楚的:

dry_run是决定是否对数据库的更改是 作出或如果导入只是模拟一个布尔值。它默认为False。

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