Как вставить изображение с помощью Django BinaryField и Postgresql Bytea с помощью Django Rest Framework?

Я хочу вставить изображение в базу данных.

Я использую Django Rest Framework и Django BinaryField в модели и использую Postgresql Bytea тип данных.

Вот мой код :

models.py

class Question(models.Model):
    question_id = models.BigAutoField(primary_key=True)
    question = models.TextField(default=None, null=True)
    question_picture = models.BinaryField(default=None, null=True)
    answer = models.CharField(max_length=255)
    mc_a = models.CharField(max_length=255)
    mc_b = models.CharField(max_length=255)
    mc_c = models.CharField(max_length=255)

    class Meta:
        managed = True
        db_table = 'question'

    def __str__(self):
        return self.question

serializers.py

class QuestionSerializer(serializers.ModelSerializer):

    class Meta:
        model = Question
        fields = ('question_id',
                  'question',
                  'question_picture',
                  'answer',
                  'mc_a',
                  'mc_b',
                  'mc_c')

views.py

@api_view(['POST'])
def question_list(request):
    if request.method == 'POST':
            question_data = JSONParser().parse(request)
            questions_serializer = QuestionSerializer(data=question_data)
            if questions_serializer.is_valid():
                questions_serializer.save()
                return JsonResponse(questions_serializer.data, status=status.HTTP_201_CREATED) 
            return JsonResponse(questions_serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Приведенный выше код, который я пытался запустить для вставки данных. Когда я проверил базу данных, question_picture данные (изображение) были пустыми, но другие данные были заполнены.

Как вставить изображение, чтобы оно сохранилось в базе данных?

Как вы отправляете изображение в Django? (Base64?).

Я думаю, что эта тема похожа на вашу Сериализация бинарного поля django rest framework

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