如何在django中编辑BinaryField?

时间:2016-11-25 08:52:47

标签: python django forms model

这是我的代码:

#models.py
class Upload(models.Model):
    #image = models.FileField()    #working code
    image = models.BinaryField()   #not working

#forms.py
class UploadModelForm(forms.ModelForm):
    class Meta:
        model = Upload
        fields = ('image')
        labels = { 'image': "Upload Image" }
        widgets = {
            'image' : forms.FileInput(attrs={'multiple': True})
        }

当我运行它时,它会抛出以下错误:

  

'图像'无法为上传模型表单指定,因为它是一个不可编辑的字段

但是当我将BinaryField更改为FileField时,它运行正常。问题是,在我的数据库中,FileField有一个DataType char,这不是我想要的。我希望DataType为blob

修改 我忘了说我试过了:

  

image = models.BinaryField(editable = True)

它无效。

2 个答案:

答案 0 :(得分:1)

请注意,此内容已在Django 2.1

中更改
  

Django 2.1:

     

较旧的版本不允许将可编辑的设置设置为True。

答案 1 :(得分:0)

此链接可能会帮助您。您仍然可以将字段类型设置为以下可用选项之一:

http://django-mysql.readthedocs.io/en/latest/model_fields/resizable_text_binary_fields.html

希望有所帮助!