es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo solucionar este error al utilizar Captcha en Django?

Mi código (versión de python=3.10, versión de django=4.0):

def obtener_codigo(request):
    img = ImageCaptcha(200, 100)
    im = img.generate_image(chars='1234')
    fp = BytesIO()
    im.save(fp, 'png')
    return HttpResponse(fp.getvalue(), content_type='image/png')

Error:

TypeError en /obtener_codigo/
El objeto 'float' no se puede interpretar como un número entero
Método de solicitud: GET
URL de solicitud: http://localhost:8000/obtener_codigo/
Versión de Django: 4.0
Tipo de Excepción: TypeError
Valor de la Excepción:
El objeto 'float' no se puede interpretar como un número entero
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Explicación:

    El error se debe a que se pasó un valor float en lugar de un valor entero al método ImageCaptcha(). En el código proporcionado, las dimensiones de 200 y 100 se pasan como valores float. Para solucionar el problema, cambia las dimensiones a valores enteros en su lugar.

    Código corregido:

    from captcha.image import ImageCaptcha
    from io import BytesIO
    from django.http import HttpResponse
    
    def get_code(request):
        img = ImageCaptcha(200, 100)
        im = img.generate_image(chars='1234')
        fp = BytesIO()
        im.save(fp, 'png')
        return HttpResponse(fp.getvalue(), content_type='image/png')
    

    Nota: Las declaraciones de importación también se han incluido en el código corregido como referencia.

Comments are closed.