私は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')
私が試しましたモデル定義の後ろにシグナルとフックを入れますが、私はこのファイル名を取得できません。誰かが軽いplを流すことができますか?
UPDATE:私は基本的に達成したいものを詳しく説明してみましょう:
User1はフロントエンドで をレンダリングされたエンドポイント "/ API/calculate_interest_rate" リアクトコンポーネント当たります。 「calculate_interest_rate」は DRFで配信され、ユーザーはCSVファイルをアップロードできます。これは "user1.csv"という名前で保存され、ファイルは処理され、表形式になります( Reactでレンダリングされます)。同時に、およびユーザー1に平行で
- は、User2が同じエンドポイント誤って「/ API/calculate_interest_rate」と 彼は「user1.csv」として彼のファイルを保存し、systemnへのアップロード、それを打ちます。
私は、ファイルの両方の名前を検出して処理できるようにしたいと考えています。同じデフォルトファイル名(例えば、OverwriteStorage()テクニックを使用して)を常に使用することによって、2人以上のユーザーが同じファイル名を使用しているときに混乱を引き起こすでしょう。したがって、私はファイル名をそのまま取得して直ちに処理できる技術を探しています。
なぜセッションを使用しないのですか?例: 'user_ .csv'? –