使用Django Rest(HELP)将图像上传和检索到MongoDB Atlas



我在上传图像到Mongo并使用Django Rest检索图像时遇到了问题。我使用的是GridFS,我只是想上传一个用户的个人资料图片。这就是我的api在上传我的图像后的样子

它没有向我显示访问它的可行链接。它只是出于某种原因将我指向create视图。我查看了我的Mongo Atlas页面,似乎图像正在存储中。如何正确检索图像?

这是我写的代码:

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

也许你应该试试这样的东西:

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

最新更新