- ファイルフィールドを持つモデルを作成する まず、ファイルフィールドを持つモデルを作成しましょう。例えば、以下のようなモデルを作成します。
from django.db import models
class MyModel(models.Model):
file_field = models.FileField(upload_to='uploads/')
- Base64データをファイルフィールドに変換する 次に、Base64エンコードされたデータをファイルフィールドに変換する関数を作成します。以下のコードは、Base64データをデコードし、一時ファイルに保存してからファイルフィールドに代入する例です。
import base64
from django.core.files.base import ContentFile
def save_file_from_base64(file_data, file_field):
decoded_file = base64.b64decode(file_data)
file_name = 'example_file.png' # ファイル名を適宜変更してください
file_field.save(file_name, ContentFile(decoded_file), save=True)
- ビューでBase64データを処理する
最後に、ビューでBase64データを受け取り、ファイルフィールドに変換する方法を示します。以下の例では、POSTリクエストのデータからBase64データを取得し、
save_file_from_base64
関数を使ってファイルフィールドに保存しています。
from django.http import JsonResponse
def upload_file(request):
if request.method == 'POST':
file_data = request.POST.get('file_data') # POSTデータからBase64データを取得
my_model = MyModel.objects.create() # モデルのインスタンスを作成
save_file_from_base64(file_data, my_model.file_field) # Base64データをファイルフィールドに保存
return JsonResponse({'message': 'File uploaded successfully'})
これで、Base64データをファイルフィールドに変換する方法がわかりました。必要に応じて、ファイルの拡張子や保存場所を適宜変更してください。