На который ссылается слово файл в этом коде
Здесь у меня есть файл в request.data['file'] и self.request.data.get('file') является ли этот файл ссылкой на FileField в модели. Мне нужно загрузить файл_2 также как я могу реализовать код
models.py:
class FileUpload(models.Model):
owner = models.CharField(max_length=250)
file = models.FileField(upload_to='csv_uploads/%y/%m')
created = models.DateTimeField(auto_now_add=True)
file_2 = model.Filefield(upload_to='csv_uploads/%y)
def __str__(self):
return self.file.name
views.py
class FileUploadView(APIView):
permission_classes = (IsAuthenticated,)
parser_classes = (MultiPartParser, FormParser,)
def post(self, request, *args, **kwargs):
request.data['owner'] = request.user.id
file_serializer = FileSerializer(data=request.data)
if request.data['file'] is None:
return Response({"error": "No File Found"},
status=status.HTTP_400_BAD_REQUEST
if file_serializer.is_valid():
data = self.request.data.get('file')
Ну, вам просто нужно указать это поле в запросе на пост, а также обязательно добавить имя файла и id в HTML, чтобы указать различные поля :
class FileUploadView(APIView):
permission_classes = (IsAuthenticated,)
parser_classes = (MultiPartParser, FormParser,)
def post(self, request, *args, **kwargs):
request.data['owner'] = request.user.id
file_serializer = FileSerializer(data=request.data)
if request.data['file'] is None:
return Response({"error": "No File Found"},
status=status.HTTP_400_BAD_REQUEST
if file_serializer.is_valid():
data = self.request.data.get('file')
if request.data['file_2'] is None:
return Response({"error": "No File Found"},
status=status.HTTP_400_BAD_REQUEST
if file_serializer.is_valid():
data = self.request.data.get('file_2')
В вашем HTML обязательно добавьте имя поля и id, чтобы файлы могли быть загружены в нужные поля.
# Example
<form method="POST" action="." enctype="multipart/form-data" multiple>
{% csrf_token %}
<input type="file" name="file" id="id_file" accept="image/*">
<input type="file" name="file_2" id="id_file_2" accept="image/*">
<button type="submit" class="button bg-gray-700"> Upload Files </button>
</form>