我正在使用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'? –