Как загрузить файл в File Filed в Django автоматически в бэкенде без ручного выбора во фронтенде

Мой models.py

from django.db import models

# Create your models here.
class Result(models.Model):
    Id = models.AutoField(primary_key=True, blank=False)
    Name = models.CharField(max_length=100)
    # Date = models.DateTimeField(auto_now=False, auto_now_add=False)
    # Comments = models.TextField(max_length=256)
    File = models.FileField(blank=False)

Мой views.py

from django.shortcuts import render
from contextmapping.Connection import Connection

from rest_framework.response import Response 
from rest_framework.decorators import action
from django.shortcuts import render

from rest_framework import viewsets,status
from rest_framework.authentication import TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from result.models import Result

class ResultViewSet(viewsets.ModelViewSet):
    queryset = Result.objects.all()
    serializer_class = Result
    authentication_classes = (TokenAuthentication,)
    permission_classes = (IsAuthenticated,)


    @action(detail=True,methods=['GET'])
    def resultfill(self,request,pk=None):
        
        response={'message':'its working'}
        return Response(response,status=status.HTTP_200_OK)

У меня есть файл data1.py в папке, я хочу запустить функцию resultfill в views.py по url, и хочу указать путь к этому файлу, и этот файл должен автоматически загружаться в File в models.py . Как этого добиться?

Вы можете использовать default в поле file и указать путь к файлу. Если вы установили все URLs медиа и статических файлов в настройках, то вы можете просто добавить 'data1.py' в качестве default.

class Result(models.Model):
    Id = models.AutoField(primary_key=True, blank=False)
    Name = models.CharField(max_length=100)
    # Date = models.DateTimeField(auto_now=False, auto_now_add=False)
    # Comments = models.TextField(max_length=256)
    File = models.FileField(default='data1.py')

Это свяжет ваши объекты с этим файлом, представляя, что у вас есть 'media/data1.py' в качестве местоположения файла в случае, если вы не загрузите свой собственный файл из frontend или backend.

Вернуться на верх