【问题标题】:Uploading and Retrieving Images to MongoDB Atlas using Django Rest (HELP)使用 Django Rest(帮助)将图像上传和检索到 MongoDB Atlas
【发布时间】:2022-01-12 20:23:35
【问题描述】:

我无法将图像上传到 Mongo 并使用 Django Rest 检索它们。我正在使用 GridFS,我只是想上传用户的个人资料图片。This what my api looks like after uploading my image

它没有向我显示访问它的可行链接。出于某种原因,它只是让我回到创建视图。我检查了我的 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

【问题讨论】:

    标签: django mongodb django-rest-framework mongodb-atlas


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2020-06-14
      • 1970-01-01
      • 2017-02-14
      • 1970-01-01
      • 2020-09-03
      • 2020-09-23
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      相关资源
      最近更新 更多