我试图在我的应用程序媒体文件夹中上传一些图像。问题是图片上传成功,但不在媒体文件夹中。它创建另一个文件夹并存储它们的。我的代码细节如下:
urls . py
from django.contrib import admin
from django.urls import path
from ssibdweb import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index, name='index'),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIAFILES_DIRS)
settings.py
MEDIA_DIR = BASE_DIR / 'media'
MEDIA_URL = '/media/'
MEDIAFILES_DIRS = [
STATIC_DIR,
]
models.py
class BlogImage(models.Model):
id = models.AutoField(primary_key=True)
sub_id = models.ForeignKey(Subject, on_delete=models.CASCADE)
pic = models.ImageField(upload_to='blog/')
def __str__(self):
return str(self.id)
我使用以下形式上传
<form method="POST" enctype="multipart/form-data" >
您试图通过settings.MEDIAFILES_DIRS
insidestatic()
django.conf
中不存在的函数设置您可以检查设置的可用常数。为了存储您上传的媒体内容,您必须设置MEDIA_ROOT
值
MEDIA_ROOT = BASE_DIR / 'media'
和url .py像这样修改文件
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)