Django是否可以显示来自媒体文件的图像?

vsikbqxv  于 2023-11-20  发布在  Go
关注(0)|答案(1)|浏览(119)

我有一个项目,其中管理员(编辑)上传图像到数据库,他们将在文章和文章的缩影(列表的形式)显示。
我设法配置显示图像从媒体文件夹,但它不是工作的方式,我想它是。
我想上传图像在特定的“媒体”文件夹中。例如:博客/媒体/评论_图像博客/媒体/评论_minatures_images
我知道上传到特定的文件夹是可能的,但这不是这个问题的重点。我courious我怎么能配置媒体根显示图像从不同的文件夹。
现在我可以指定其中一个文件夹为MEDIA ROOT,并且该文件夹中的图像可以正确显示,但其他文件夹中的图像根本无法显示。
可以配置吗?
我的代码:
models.py

fs_reviews_images = FileSystemStorage(location="blog/media/reviews_images")
class ReviewsImages(models.Model):
    image = models.ImageField(storage=fs_reviews_images)
    description = models.CharField(max_length=50)
fs_reviews_minature_images = FileSystemStorage(location="blog/media/reviews_miniatures_images")

class ReviewsMiniaturesImages(models.Model):
    miniature_image = models.ImageField(storage=fs_reviews_minature_images)
    description = models.CharField(max_length=50)
    game_title = models.CharField(max_length=50)

    def __str__(self):
        return f"{self.game_title} {self.description}"

字符串
urls.py

urlpatterns = [
    path("admin/", admin.site.urls),
    path("", views.HomeView.as_view(), name="home"),
    path("reviews", views.ReviewsListView.as_view(), name="reviews"),
    path("reviews/article/<pk>", views.ReviewsDetailView.as_view(), name="reviews-detail")
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, "blog/media/reviews_miniatures_images")

MEDIA_URL = '/media/'


模板

<img src="{{ MEDIA_URL }}{{ review.review_minature_image.miniature_image }}" class="card-img-top"
         alt="{{ review.review_minature_image.description }}">


我尝试了几个解决方案。我试图在逗号后传递文档根参数中的不同文件夹,一些静态函数。这些都不像我预期的那样工作。我在文档中找不到解决方案。
我希望从一个MEDIA_URL下的“媒体”文件夹的不同文件夹中显示图像。

uurity8g

uurity8g1#

你可以使用.url

<img src="{{ review.review_minature_image.miniature_image.url }}">

字符串
例如,这是为以下属性指定的路径级别:

  • car.photo给出<ImageFieldFile: cars/chevy.jpg>
  • car.photo.name给出'cars/chevy.jpg'
  • car.photo.path给出'media/cars/chevy.jpg'
  • car.photo.url给出'http://www.example.com/cars/chevy.jpg'

相关问题