问题描述
我使用 MysqL 作为数据库。我想将我的 imagefield 文件上传到我在项目中创建的媒体文件夹中。我收到“空路径不存在”。
settings.py
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
models.py
class Product(models.Model):
category = models.ForeignKey(Category,related_name='product',on_delete=models.CASCADE)
created_by = models.ForeignKey(User,on_delete=models.CASCADE,related_name='product_creator')
title = models.CharField(max_length=255)
author = models.CharField(max_length=255,default='admin')
description = models.TextField(blank=True)
image = models.ImageField(upload_to='images/')
slug = models.SlugField(max_length=255)
price = models.DecimalField(max_digits=4,decimal_places=2)
in_stock = models.BooleanField(default=True)
is_active = models.BooleanField(default=True)
created = models.DateTimeField(auto_Now_add=True)
updated = models.DateTimeField(auto_Now=True)
class Meta:
verbose_name_plural = 'Products'
ordering = ('-created',)
def __str__(self):
return self.title
urls.py
from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/',admin.site.urls),]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
我已经在 admin.py 中成功注册了模型。
解决方法
您的代码:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
测试一下:
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
,
我通过删除我之前添加的 settings.py 文件中的“MEDIA_URL”和“MEDIA_ROOT”路径来修复此错误。然后上面的代码就可以工作了。