Как хранить список изображений в 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/")
Вернуться на верх