首页 > 解决方案 > 图像未保存在数据库(mysql)中并在 django 中将 null 显示为 blob

问题描述

我正在从用户那里保存 4 张图片(可能为空)。我不想将图像保存在目录或文件夹中,我需要将图像保存在 db(mysql) 中。'form.save' 正在工作,在查看 db 后,blob 存在,但其中没有数据不仅null显示为 blob

表格.py

  class ClientCreateForm(ModelForm):
    photo = forms.ImageField(required=False)
    signature = forms.ImageField(required=False)
    poi_image = forms.ImageField(required=False)
    poa_image = forms.ImageField(required=False)

模型.py

class Client(models.Model):
       
    photo = models.ImageField(db_column='PHOTO', blank=True, null=True)  
    signature = models.ImageField(db_column='SIGNATURE', blank=True, null=True)  
    poi_image = models.ImageField(db_column='POI_IMAGE', blank=True, null=True)  
    poa_image = models.ImageField(db_column='POA_IMAGE', blank=True, null=True)   

视图.py

def client_create_view(request):
  if request.method == 'POST':
     form = ClientCreateForm(request.POST)
        if form.is_valid():
          form.save()
        else:
          pass




          

标签: mysqldjango

解决方案


根据Django 文档,这不是 ImageField 和 FileField 的工作方式,它们保存在 MEDIA_ROOT 中并添加到数据库的路径。您应该改用BinaryField


推荐阅读