Django ContentFile get_available_name()得到一个意外的关键字参数'max_length'

时间:2017-07-03 23:53:08

标签: python django django-models

当我尝试将图像对象保存到ImageField时,出现以下错误:

  

get_available_name()获得了一个意外的关键字参数'max_length'

代码如下所示:

imagen_url = form.cleaned_data['imagen_url']
respuesta = requests.get(imagen_url)
imagen = Image.open(StringIO(respuesta.content))
stringio_obj = StringIO()
imagen.save(stringio_obj, format="JPEG")
final_image = stringio_obj.getvalue()
carta.creador = request.user
carta.ultima_revision = datetime.today()
carta.save()
print("carta_id: %s" % carta.id)  # Works correctly till here

archivo_imagen = ContentFile(final_image, "0_" + carta.nombre)  # Guarda la original con un 0 adelante
carta.imagen_base.save("0_" + carta.nombre, archivo_imagen, save=True)

当我尝试使用ty将ContentFile对象保存到模型的ImageField时,它不起作用。它曾经在较低版本的Django中工作,但自从我转移到django 1.10后,它就停止了工作。

模型很简单,看起来像这样:

def ubicar_img_base(instance, filename):
    nombre_archivo = "0_" + slugify(instance.nombre) + ".jpeg"
    path = "/".join([instance.grupo.nombre, nombre_archivo])
    return path

class CartaMagicPy(models.Model):
    imagen_base = models.ImageField(null=True, upload_to=ubicar_img_base)

任何建议都会有所帮助

1 个答案:

答案 0 :(得分:4)

好的,希望这对某人有用:我解决了更新botostorages的问题。如果您使用amazon AWS,这听起来很熟悉。