【发布时间】:2017-08-04 21:15:11
【问题描述】:
我正在使用 DRF 后端上传文件。在我的具体情况下,我希望在文件上传后获取文件名。原因是如果用户上传了同名文件,我仍然可以独立处理。
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')
我试图在模型定义之后放置信号和钩子,但我无法获得这个文件名。有人可以解释一下吗?
更新:让我详细说明我想要实现的基本目标:
User1 命中呈现的端点“/api/calculate_interest_rate” 通过前端 React 组件。 “calculate_interest_rate”由 DRF,并让用户上传 CSV 文件。这将存储为 “user1.csv”,文件被处理然后制成表格(由 反应)。
在与 User1 并行的同时,User2 命中相同的端点“/api/calculate_interest_rate”,并且 他错误地将他的文件保存为“user1.csv”,并将其上传到systemn。
所以我希望能够检测文件的两个名称以便处理它。通过始终使用相同的默认文件名(例如使用 OverwriteStorage() 技术),当两个或更多用户使用相同的文件名时,我可能会造成混乱。因此,我正在研究一种允许我按原样获取文件名并立即处理它的技术。
【问题讨论】:
-
为什么不使用会话?例如:
user_<session_key>.csv?
标签: python django django-rest-framework