Я учусь Django прямо сейчас, и у меня есть некоторые проблемы с загрузкой изображений. Я пытаюсь сделать альбом, имеющий отношение hasMany к изображениям, и вот что я получаю:
class Galery(models.Model):
title = models.CharField(max_length=128)
def __str__(self):
return self.title
def nameFile(self, filename):
return '/'.join(['images', filename])
class Image(models.Model):
name = models.CharField(
max_length=80,
)
path = models.ImageField(
upload_to=nameFile,
max_length=254,
null=False,
width_field='width',
height_field='height'
)
height = models.PositiveIntegerField(
blank=True,
null=True
)
width = models.PositiveIntegerField(
blank=True,
null=True
)
galery = models.ForeignKey(Galery, related_name='images', on_delete=models.CASCADE)
def __str__(self):
return self.name
А вот файл сериализатора:
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = Image
fields = ('path', 'width', 'height', 'name')
class GalerySerializer(serializers.ModelSerializer):
images = ImageSerializer(many=True)
class Meta:
model = Galery
fields = ('title', 'images')
extra_kwargs = {'images': {'required': True}}
def create(self, validated_data):
galery = Galery.objects.create(**validated_data)
return galery
в моем методе get, который я получаю следующий результат:
"data": [
{
"title": "album",
"images": [
{
"path": "http://127.0.0.1:8000/media/images/payment_options_YhnHBHl.png",
"width": 164,
"height": 24,
"name": ""
},
{
"path": "http://127.0.0.1:8000/media/images/insta_M99cAoz.png",
"width": 120,
"height": 120,
"name": ""
},
{
"path": "http://127.0.0.1:8000/media/images/icon-checked_f9ANBAy.svg",
"width": null,
"height": null,
"name": ""
},
{
"path": "http://127.0.0.1:8000/media/images/home-email_lPoQgNm.png",
"width": 40,
"height": 44,
"name": ""
}
]
}
],
"meta": {
"nextPage": null,
"previousPage": null,
"total": 1,
"page": 1,
"perPage": 10
}
, но когда я пытаюсь получить доступ к ссылке на изображение, я не вижу изображение (404). И я хочу знать, нужно ли при удалении этого альбома go проходить через каждый путь к изображению и удалять или что-то лучше или проще?