Как вставить изображение с помощью 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