Django 中的 ImageField 上传
我正在尝试用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()