def create(self, validated_data): client_files = validated_data.pop('client_files') server_files = validated_data.pop('server_files') remote_files = validated_data.pop('remote_files') validated_data.pop('use_zip_chunks') db_data = models.Data.objects.create(**validated_data) data_path = db_data.get_data_dirname() if os.path.isdir(data_path): shutil.rmtree(data_path) os.makedirs(db_data.get_compressed_cache_dirname()) os.makedirs(db_data.get_original_cache_dirname()) os.makedirs(db_data.get_upload_dirname()) for f in client_files: client_file = models.ClientFile(data=db_data, **f) client_file.save() for f in server_files: server_file = models.ServerFile(data=db_data, **f) server_file.save() for f in remote_files: remote_file = models.RemoteFile(data=db_data, **f) remote_file.save() db_data.save() return db_data
def update(self, instance, validated_data): client_files = validated_data.pop('clientfile_set') server_files = validated_data.pop('serverfile_set') remote_files = validated_data.pop('remotefile_set') for file in client_files: client_file = models.ClientFile(task=instance, **file) client_file.save() for file in server_files: server_file = models.ServerFile(task=instance, **file) server_file.save() for file in remote_files: remote_file = models.RemoteFile(task=instance, **file) remote_file.save() return instance