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."
]
}
Пожалуйста, помогите мне с этой проблемой.