Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

812
Visualizações
¿Qué se convirtió en available_attrs en Django 3?

En primer lugar, soy nuevo en Django, así que por favor sean amables conmigo :D

Actualmente estoy adaptando archivos .py para Django 3 porque los archivos que tengo son compatibles con Django 2. Entonces, se han realizado algunos cambios para la nueva versión y en un archivo está escrito:

 @wraps(view_func, assigned=available_attrs(view_func))

Con la importación:

 from django.utils.decorators import available_attrs

Busqué una adaptación de available_attrs y rápidamente descubrí que se eliminó para la nueva versión.

Y cuando ejecuto el código, tengo esto:

 ImportError : cannot import name 'available_attrs' from 'django.utils.decorators'

Entonces, me preguntaba qué debo escribir en lugar de available_attrs para que funcione.

PD: Lo siento por mi mal inglés

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

available_attrs() solo existió para ayudar a conectar Python 2 y Python 3. Esto está documentado en las notas de la versión de Django 3.0 :

Se eliminaron las API privadas de compatibilidad con Python 2

Si bien la compatibilidad con Python 2 se eliminó en Django 2.0, algunas API privadas no se eliminaron de Django para que las aplicaciones de terceros pudieran continuar usándolas hasta el final de la vida útil de Python 2.

Dado que esperamos que las aplicaciones eliminen la compatibilidad con Python 2 al agregar soporte para Django 3.0, eliminaremos estas API en este momento.

  • [...]
  • django.utils.decorators.available_attrs() - Esta función devuelve functools.WRAPPER_ASSIGNMENTS

Si @wraps() en su línea de muestra es el decorador estándar functools.wraps() , entonces puede simplemente eliminar por completo assigned=available_attrs(...) , porque functools.WRAPPER_ASSIGNMENTS es el valor predeterminado para assigned :

 @wraps(view_func)

de lo contrario, simplemente use functools.WRAPPER_ASSIGNMENTS directamente.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda