我正在处理此视图中的图像/媒体/文件,并为文章模型编写了此视图以执行某些工作:
@api_view(["GET"])
def article_grid_list(request):
# fetched data from the database
data = Articles.objects.all().order_by("-created_date")[:11]
pinned_article = Articles.objects.get(pinned=True)
# serialized data
pinned_data = ArticlesSerializer(pinned_article)
horizontal_data = ArticlesSerializer(data[:3], many=True)
small_data = ArticlesSerializer(data[3:8], many=True)
card_data = ArticlesSerializer(data[8:], many=True)
final_data = {
"pinned":pinned_data.data,
"horizontal": horizontal_data.data,
"small": small_data.data,
"card": card_data.data
}
当我打印此请求的结果时,我得到像这样的cover
字段:"cover": "/media/article/artice_cover_NkOUuZ7vH3zEejCgV.jpg",
但我想要带有主机名的图像URL
当我像ModelViewSet那样编写此函数时,我会得到cover
字段的绝对URL,但我想在每个请求中获取图像的绝对URL(主机名+图像路径)
ModelViewSet示例:
class ArticleGridList(viewsets.ModelViewSet):
queryset = Articles.objects.all().order_by("-created_date")
serializer_class = ArticlesSerializer
我期望的结果是:
"cover": "http://localhost:8000/media/article/artice_cover_NkOUuZ7vH3zEejCgV.jpg"
我的应用程序 urls.py 文件:
router = routers.SimpleRouter()
router.register('articles', ArticlesViewSet)
urlpatterns = [
path("article-grid-list/", article_grid_list)
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += router.urls