0
ImageFieldのrest_to_stringメソッドを/ MEDIA /のサブフォルダを作成するために動的に設定したいと考えています。これは "{0} _ {1}"です。 user_id、task_id)。ImageFieldのupload_toメソッドを動的に変更するように修正する
ファイルとタスクIDはPOSTリクエストから送信されます。今のところ、サブフォルダを作成するために必要な変数は空です。私はインスタンスが保存されていない間、私はtask_idを利用することができないと不安です。
質問サブフォルダを作成するにはどうすればよいですか?事前に
{
file_location: binary_file,
task_id: 15
}
serializers.py
class PostProcessingRawFilesSerializer(serializers.ModelSerializer):
class Meta:
model = ProcessingRawFilesItem
fields = (
'id',
'file_location',
'task_id'
)
def create(self, validated_data):
task_id_data = validated_data.pop('task_id')
task = Task.objects.get(pk=task_id_data)
raw_image = ProcessingRawFilesItem(task_id=task, **validated_data)
return raw_image
models.py
def user_directory_path(instance, filename):
task_id = instance.task_id
user_id = Task.objets.get(pk=task_id).owner_id
return '{0}_{1}/{2}'.format(user_id, task_id, filename)
class ProcessingRawFilesItem(models.Model):
id = models.AutoField(primary_key=True)
file_location = models.ImageField(upload_to=user_directory_path)
task_id = models.ForeignKey(Task, related_name='processing_raw_files', on_delete=models.CASCADE, null=True, blank=True)
ありがとう:
例要求はそのように見えます!