使用Django REST Framework,我想构建一个REST端点,我可以POST
使用包含多个文件的zip文件。我想将POSTed zip文件解压缩,然后将内容映射到一个或多个Models
。我的模型看起来像:
class Package(models.Model):
name = models.CharField(...)
class File(models.Model):
package = models.ForeignKey(Package)
hash = models.CharField(...)
filename = models.FileField(upload_to="files")
我想在POST
zip文件时,序列化程序为上传zip中包含的每个文件创建一个新Package
和File
。
我最初的想法是将ModelSerializer
子类化并将field_from_native
方法覆盖为:
def field_from_native(self, data, files, field_name, into):
data['file_set'] = self.make_file_set_from_zip(files[zip_field_name])
这是在DRF中处理zip文件的正确方法吗?