Django 中的 ImageField 上传

1 投票
2 回答
8904 浏览
提问于 2025-04-17 13:47

我正在尝试用Django上传一张图片,但到现在为止,我没有看到upload_to这个目录被创建,也没有在数据库字段中找到任何文件来源。

我的模型。

class Person(models.Model):
  photo = models.ImageField(upload_to='profiles/', null=True, blank=True)

我的视图

def create_profile(request):
    if request.method == "POST":
        form = PartialPersonForm(request.POST, request.FILES,)
        addressForm = PartialAddressForm(request.POST)

当我上传并保存时,并没有出现任何错误。我该如何调试一下,看看照片字段是否被设置了呢?

 <div class="photo-upload">{{ form.photo|attr:"onchange:readURL(this);" }}

2 个回答

-2

我觉得你应该自己创建一个叫 upload_to 的文件夹。另外,记得给这个文件夹设置合适的权限,不然它就没法在里面写东西。

2

除非你在处理媒体存储方面有特别的需求,否则你应该把 MEDIA_ROOT 设置为你想要保存上传文件的文件夹。

在处理文件类型的字段时,你需要按照Django文档中关于 FileField.storage 的说明来操作。

在你的视图中,你需要使用 save() 来保存上传的表单数据。

def create_profile(request):
    if request.method == "POST":
        form = PartialPersonForm(request.POST, request.FILES,)
        addressForm = PartialAddressForm(request.POST)
        form.save()
        addressForm.save()

撰写回答