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 は、データベースに変更を加えるか、インポートをシミュレートするだけかを決定するブール値です。デフォルトは False です。

raise_errors はブール値です。True の場合、インポートでエラーが発生します。デフォルトは False です。これは、最終的なエラーとトレースバックが Result インスタンスに保存されることを意味します。

于 2016-06-04T04:00:45.757 に答える