Почему мой arrayField (модели.ImageField()) всегда получает нулевое значение?

#django

#django

Вопрос:

Я пытаюсь создать статью с несколькими изображениями, но столкнулся с проблемой.

 class Article(models.Model):

    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='articles')
    MediaImageArray = ArrayField(models.ImageField(upload_to='images',null=True,blank=True),size=8,null=True)
  

Когда я публикую список изображений с именем as p1.jpg , p2.png , он всегда возвращает null следующим образом:

Использование Postman:

 {
    "id": "34d75f5e-bd82-45a1-9c86-10e3f260311d",
    "author": "d39d29c8-4807-41c5-a3fa-e9cb117fdb2d",
    "MediaImageArray": [
        null,
        null
    ],
}
  

Кто-нибудь знает причину?

Ответ №1:

ArrayField не совместим с хранением изображений (я думаю, даже файлов). Вместо этого используйте обратный внешний ключ.

 class Article(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    author = models.ForeignKey(User,on_delete=models.CASCADE,related_name='articles')
    

class ArticleImages(models.Model):
    image = models.ImageField(upload_to='images',null=True,blank=True)
    article = models.ForeignKey(Article, on_delete=models.CASCADE)