Django 不会将图像上传到媒体目录

发布于 2025-01-16 21:45:25 字数 1230 浏览 3 评论 0原文

今天,我尝试在我的项目中加入图像,想法很简单 - 使用图像、标题和描述创建新闻。 我想知道为什么当我设置媒体文件时 所以我在这个视图中发布新闻:

class NewsCreate(views.CreateView):
template_name = 'web/create_news.html'
model = News
fields = ('title', 'image', 'description')
success_url = reverse_lazy('home')

这是模型:

class News(models.Model):
TITLE_MAX_LENGTH = 30
title = models.CharField(
    max_length=TITLE_MAX_LENGTH
)
image = models.ImageField(
    upload_to='news/',
    blank=True
)
description = models.TextField()

这是 settings.py 中的设置:

MEDIA_ROOT = BASE_DIR / 'mediafiles'
MEDIA_URL = '/media/'

这是 urls.py 文件:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
   path('admin/', admin.site.urls),
   path('', include('University_Faculty.web.urls')),
]
if settings.DEBUG:
   urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我注意到,当我尝试访问任何现有 URL 时,会发生这种情况: 错误的 ulr 页面将媒体显示为正确的页面

这是 10+ 后我的媒体文件夹中的结果POST 请求它在数据库中显示它实际上正在创建新闻,但图像不会去任何地方:没有文件媒体文件夹

Today I tried to have images in my project and the idea is simple - create news with an image, title, and description.
I wonder why when I set up my media files
So I make my news in this view:

class NewsCreate(views.CreateView):
template_name = 'web/create_news.html'
model = News
fields = ('title', 'image', 'description')
success_url = reverse_lazy('home')

Here is the model:

class News(models.Model):
TITLE_MAX_LENGTH = 30
title = models.CharField(
    max_length=TITLE_MAX_LENGTH
)
image = models.ImageField(
    upload_to='news/',
    blank=True
)
description = models.TextField()

Here is the set-up in settings.py:

MEDIA_ROOT = BASE_DIR / 'mediafiles'
MEDIA_URL = '/media/'

Here is the urls.py file:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
   path('admin/', admin.site.urls),
   path('', include('University_Faculty.web.urls')),
]
if settings.DEBUG:
   urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

I've noticed that when I try to go to none existing URL this happens : wrong ulr page showing media as a correct one

This is the result in my media folder after 10+ POST requests it shows in the database that it is actually creating the news, but the images won't go anywhere: no files media folder

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风筝在阴天搁浅。 2025-01-23 21:45:25

将其添加到settings.py

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

add this to settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
野稚 2025-01-23 21:45:25

你需要纠正

MEDIA_ROOT = BASE_DIR /“媒体”

希望这对您有用。

You need to correct

MEDIA_ROOT = BASE_DIR / 'media'

Hope this will work for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文