#django #mongodb #django-rest-framework #mongodb-atlas
Вопрос:
У меня возникли проблемы с загрузкой изображений в Mongo и их извлечением с помощью Django Rest. Я использую GridFS и просто пытаюсь загрузить фотографию профиля пользователя.Так выглядит мой api после загрузки моего изображения
Он не показывает мне жизнеспособную ссылку для доступа к нему. Это просто по какой-то причине возвращает меня к представлению создания. Я проверил свою страницу Атласа Монго, и, похоже, изображения сохраняются. Как я могу правильно восстановить свои изображения?
Вот код, который я написал:
settings.py
BASE_URL = 'http://127.0.0.1:8000/'
models.py
grid_fs_storage = GridFSStorage(collection='myfiles', base_url=''.join([settings.BASE_URL, 'myfiles/']))
class ProfilePic(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
profile_pic = models.ImageField(upload_to='users',
default='avatar.png',storage=grid_fs_storage)
serializers.py
class ProfilePicSerializer(serializers.ModelSerializer):
class Meta:
model = models.ProfilePic
fields = ('id', 'profile_pic')
views.py
class ProfilePicView(viewsets.ModelViewSet):
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated,)
queryset = models.ProfilePic.objects.all()
serializer_class = ProfilePicSerializer
Ответ №1:
может быть, тебе стоит попробовать что-то вроде этого:
class ProfilePic(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
profile_pic = models.ImageField(upload_to='users',
default='avatar.png',storage=grid_fs_storage)
def get_picture(self, obj):
return obj.profile_pic.url