我正在尝试保存社区图像并将其保存到/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/"