У меня есть файл test.csv
в папке MEDIA_ROOT/file
.
Я хочу связать этот файл с FileField
следующей модели:
class Sample(models.Model):
data = models.FileField()
Но если я сделаю следующее:
from django.shortcuts import render
from django.http import JsonResponse
from django.conf import settings
from django.core.files import File
import os
from .models import Sample
# Create your views here.
def index(request):
path = os.path.join(settings.MEDIA_ROOT, os.path.join('file', 'test.csv'))
with File(open(path)) as f_obj:
sample = Sample()
filename = os.path.basename(f_obj.name)
sample.data.save(filename, f_obj, save=True)
return JsonResponse({
'file_url': sample.data.url,
'file_path': sample.data.path,
'action': 'Model instance saved to database',
})
копия файла будет создана в каталоге MEDIA_ROOT, и эта копия, а не оригинал, будет связана с моделью.
Есть ли способ не создавать такую копию и просто связать исходный файл с FileField?