FileField во вложенном сериализаторе хранит путь, при обновлении выдает ошибку "Представленные данные не были файлом. Проверьте тип кодировки в форме".

Я создал вложенный сериализатор и создал в нем методы create и update. При использовании метода POST(Create) я не получаю никаких ошибок, но при обновлении я получаю ошибку "The submitted data was not a file. Проверьте тип кодировки в форме.".

Модель:

class SmsModelMaster(models.Model):
    SRNumber = models.CharField('Request Number', max_length=50, blank=True, unique=True)
    SRState = models.CharField(max_length=100, choices=STATUS_CHOICES, default='Requested', 
    blank=False, null=True, unique=False)
    PreviousSRState = models.CharField(max_length=100, blank=True, null=False)
    SRCategory_SMS = models.ForeignKey(ServiceBucket, related_name='SRCategory_SMS', 
    blank=True, on_delete=models.CASCADE)
    SRName_SMS = models.ForeignKey(ServiceBucket, related_name='SRName_SMS', blank=True, 
    on_delete=models.CASCADE)
    RequestType = models.CharField(max_length=100, blank=True, null=False)
    RequesterName = models.CharField(max_length=100, blank=True, null=False)
    RequestedOnBehalfOf = models.CharField(max_length=100, null=True)
    SMETSVersion = models.CharField(max_length=100, blank=True, null=True)
    TPName = models.CharField(max_length=150, null=True)
    Expected_Completion_Time = models.DateTimeField(default=timezone.now, blank=True, 
    null=True)
    Request_Time = models.DateTimeField(default=timezone.now, null=True, blank=True)
    CompletionDate = models.DateField(default=timezone.now, null=True, blank=True)
    MetersetUseEndDate = models.DateField(default=timezone.now, blank=True, null=True)
    ActivitySummary = models.CharField(max_length=3000, blank=True, null=True)
    DocumentUpload = models.FileField(upload_to='Support_Request/SMS_Model/', default=None, 
    null=True, blank=True)
    Assigned_To = models.CharField(max_length=100,blank=True, null=True)

    def __str__(self):
        return self.SRNumber

    class Meta:
        verbose_name_plural = "SMS Administrator"

Serializer:

API JSON Data Sample:

{
    "SRNumber": "SR-129",
    "SRState": "Pending Approval",
    "PreviousSRState": "New Request",
    "SRCategory_SMS": 19,
    "SRName_SMS": 19,
    "RequestType": "Mothball Out",
    "RequesterName": "admin",
    "RequestedOnBehalfOf": "admin",
    "SMETSVersion": "SSSSSS",
    "TPName": "XXXXXXX",
    "Expected_Completion_Time": "2021-12-21T10:23:07.643427",
    "Request_Time": "2021-12-21T10:23:07.643436",
    "CompletionDate": "2021-12-22",
    "MetersetUseEndDate": "2021-12-27",
    "ActivitySummary": "test",
    "DocumentUpload": "http://127.0.0.1:8000/media/Support_Request/SMS_Model/SR- 
     129_Mothball_Out_211221_102307.zip",
}

Пока я отправляю обновление, я не обновляю "DocumentUpload" этот файл, но я получаю следующую ошибку.

{
    "DocumentUpload": [
        "The submitted data was not a file. Check the encoding type on the form."
    ]
}

Пожалуйста, помогите мне с этой проблемой.

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