我正在使用DRF後端上傳文件。在我的具體情況下,我想要在上傳後獲取文件名。原因是如果用戶上傳一個同名的文件,我仍然能夠獨立處理它。獲取多次上傳的文件的Django生成的唯一名稱
views.py:
class ImageUploaderView(viewsets.ModelViewSet):
renderer_classes = [renderers.JSONRenderer]
queryset = ImageUploader.objects.all()
serializer_class = ImageUploaderSerializer
parser_classes = (MultiPartParser,)
serializer.py:
class ImageUploaderSerializer(serializers.ModelSerializer):
class Meta:
model = ImageUploader
models.py:
class ImageUploader(models.Model):
# name=models.ImageField(upload_to='media')
name=models.FileField(upload_to='media')
我試着在模型定義之後放置信號和鉤子,但是我無法獲取這個文件名。有人可以擺脫一些輕鬆嗎?
UPDATE:讓我解釋我想基本上達到什麼:
用戶1命中端點 「/ API/calculate_interest_rate」,這是由前端呈現 陣營的組成部分。 「calculate_interest_rate」由 DRF提供服務,並允許用戶上傳CSV文件。這將被存儲爲 「user1.csv」,該文件被處理,然後製表(由 React渲染)。
同時和並行用戶1,用戶2打同一端點他拯救他的文件爲「user1.csv」「/ API/calculate_interest_rate」和 錯誤,並將其上傳到systemn。
所以我想能夠檢測到這兩個文件的名稱來處理它。通過使用總是相同的默認文件名(例如使用OverwriteStorage()技術),當兩個或更多用戶使用相同的文件名時,可能會導致混亂。因此,我正在研究一種技術,可以讓我按原樣獲取文件名,並立即處理它。
爲什麼不使用會話?例如:'user_ .csv'? –