Django REST 保存 Image 但返回错误的路径



我正在尝试保存社区图像并将其保存到/api/media/imagename.jpg,但是当我检索社区时,它给了我没有/api的/media/imagename.jpg,然后它找不到图像。

所以我有这个Community模型,FileField

class Community(models.Model):
"""DB Model for Community"""
name = models.CharField(max_length=150, unique=True)
description = models.TextField(default="")
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
number_of_members = models.IntegerField(default=1)
community_image = models.FileField(blank=False, null=False, default="", upload_to="")
def __str__(self):
return self.name

settings.py里有这个:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

然后这是我的urls.py

# urls.py in authentication_api application
router = DefaultRouter()
router.register('communities', views.CommunityViewSet)
urlpatterns = [
path('', include(router.urls)),  
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# urls.py in root urls file
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('authentication_api.urls'))
]

我应该更改什么,它会返回正确的图像路径。

如果您需要更多代码示例,请发表评论。

理想情况下,您应该存储如下媒体文件:

media/api/imagename.jpg

而不是:

api/media/imagename.jpg

如果您想存储如下:

media/api/imagename.jpg

然后在community_image字段中,您只需要更改:

upload_to=""

自:

upload_to="api/"

相关内容

最新更新