Ошибки сериализатора Django ('Неверные данные. Ожидался словарь, а получен {datatype}.').
Я пытаюсь создавать задания (задание может быть создано пользователем). - API работает нормально когда я посылаю запрос от DjangoRest Framework API, задание создается успешно. - Но в реальной форме (Frontend form) когда я пытаюсь разместить задание, выдается следующая ошибка. -Пожалуйста, помогите! Ошибка, которая генерируется
models.py
def upload_to(instance, filename):
return 'assignments/{filename}'.format(filename=filename)
class Assignment(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='assignments',
blank=True, null=True)
username = models.CharField(max_length=255, blank=True, null=True)
title = models.CharField(max_length=20, blank=False, null=False)
subject = models.CharField(max_length=20, choices=subject_choices, default=Statistics,
blank=False)
assignment_type = models.CharField(max_length=20, choices=assignment_choices,
default=Assignment, blank=False)
assignment_file = models.ImageField(_("Image"),upload_to=upload_to,default="", blank=False)
description = models.CharField(max_length=50, blank=False)
created_at = models.DateTimeField(auto_now_add=True)
serializers.py
class AssignmentSerializer(serializers.ModelSerializer):
class Meta:
model = Assignment
fields = ('user','username','title', 'subject', 'assignment_type', 'assignment_file',
'description')
views.py
class CreateAssignmentView(APIView):
parser_classes = [MultiPartParser, FormParser]
serializer_class = AssignmentSerializer
def post(self, request, format=None):
assignment = request.data
print(assignment)
serializer = self.serializer_class(data = assignment)
if serializer.is_valid():
print("valid")
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response({'Bad Request': 'Invalid data...'}, status=status.HTTP_400_BAD_REQUEST)
REACT Функция для создания назначений
const createAssignment = (e) => {
e.preventDefault();
let formData = new FormData();
console.log()
const data = {
user : user.user_id,
username : user.full_name,
title : assignmentTitle,
subject : assignmentSubject,
assignment_type : assignmentType,
assignment_file : assignmentFile[0].name + " " + "(" + assignmentFile[0].type + ")",
description : assignmentdescription,
}
formData.append("data", JSON.stringify(data));
console.log(formData.get("data"));
const requestOptions = {
mode: 'no-cors',
method: "POST",
body: formData,
};
fetch("/api/create-assignments/", requestOptions)
.then((response) => {
if (response.ok) {
return response.json();
} else {
setMessage("All fields are required");
setIsError(true);
}
})
.then((data) => {
setMessage("Assignment created successfully");
setIsSuccess(true);
});
};