@tekleworm

Передать url картинки?

Есть модель группы
class Group(models.Model):
 
    group_name = models.CharField(max_length=100,, unique=True)                    # group's name
    group_description = models.CharField(max_length=500, verbose_name='Опис')                           # short description of the group
    group_image = models.ImageField(upload_to='base/static/images/', ') 
    images_for_slider = models.ManyToManyField('ImagesForSlider', related_name='group')


и модель картинок
class ImagesForSlider(models.Model):
    image = models.ImageField(upload_to='base/static/images/')
    image_name = models.CharField(max_length=100, verbose_name='Назва', unique=True, default="Image")

    def __str__(self):
        return self.image_name

    def get_img(self):
        return self.image.url


В классе сериалайзера в мете все поля есть. Но когда смотрю что дает сервак, то
group_name	"!!!!!!!!!"
group_description	"@@@@@@@@@@"
group_image	"/base/static/base/static/images/git_aCw8bze.png"

в поле group_image все нормально. а массиве images_for_slider вот такое
images_for_slider	
0	1
1	2
2	3
3	4

хотя вместо 1, 2, 3, 4 там тоже должны быть ссылки. Что делаю не так?
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
crazyzubr
@crazyzubr
Python backend-developer
Если я правильно понял, необходимо вывести ссылки, а не только айдишники. Для модели поля manytomany нужно сделать отдельный сериалайзер, примерно так:

class ImagesForSliderSerializer(serializers.ModelSerializer):

    class Meta:
        model = ImagesForSlider
        fields = ('id', 'image', 'image_name')

class GroupSerializer(serializers.ModelSerializer):
    images_for_slider = ImagesForSliderSerializer(many=True)
    
    class Meta:
        model = Group
        fields = (
            # ...
            'images_for_slider',
        )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы