Как хранить список изображений в PostgreSQL ArrayField (django rest)
Я разрабатываю проект, используя django-rest для бэкенда и postgreSQL в качестве базы данных.
Я использую PostgreSQL ArrayField в моей модели Recipe для хранения нескольких изображений различных инструкций.
Однако когда я отправляю POST-запрос со списком изображений инструкций (instructions_image_list), я получаю странную ошибку.
Я буду очень признателен, если кто-нибудь поможет мне решить эту проблему. спасибо заранее.
ошибка
status_code 500
'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
модель
class Recipe(models.Model):
id = models.UUIDField(
primary_key=True,
default=uuid.uuid4,
editable=False,
)
author = models.ForeignKey(get_user_model() , on_delete=models.CASCADE, null=True, related_name='author')
photo_main = models.ImageField(upload_to='media/', blank=True)
title = models.CharField(max_length=150)
instructions_text_list = ArrayField(models.CharField(max_length=100, blank=True,null=True),default=list, blank=True ,null=True,size=15,)
instructions_image_list = ArrayField(models.ImageField(upload_to='media/',blank=True, null=True),default=list, blank=True ,null=True, size=15,)
вид
class RecipeCreate(CreateAPIView):
permission_classes = (permissions.IsAuthenticated, )
queryset = Recipe.objects.all()
serializer_class = RecipeCreateSerializer
def perform_create(self, serializer):
'''save the the current logged in user as the author of the recipe'''
serializer.save(author=self.request.user)
Лучше хранить изображения рецептов в отдельной таблице, а не использовать ArrayField.
class Recipe(models.Model):
......
class RecipeImage(models.Model):
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
image = models.ImageField(upload_to="recipe_images/")