Linha do tempo de depreciações no Django¶
Este documento lista quando várias peças do Django serão removidas ou alteradas de modo incompatível com versões anteriores, culminando com a sua depreciação, conforme política de depreciação. Mais detalhes sobre cada item geralmente podem ser encontrados nas notas da release de duas versões anteriores.
3.0¶
See the Django 2.0 release notes for more details on these changes.
- The
django.db.backends.postgresql_psycopg2module will be removed. django.shortcuts.render_to_response()will be removed.- The
DEFAULT_CONTENT_TYPEsetting will be removed. HttpRequest.xreadlines()will be removed.- Support for the
contextargument ofField.from_db_value()andExpression.convert_value()will be removed. - The
field_namekeyword argument ofQuerySet.earliest()andlatest()will be removed.
2.1¶
See the Django 1.11 release notes for more details on these changes.
contrib.auth.views.login(),logout(),password_change(),password_change_done(),password_reset(),password_reset_done(),password_reset_confirm(), epassword_reset_complete()serão removidos.- The
extra_contextparameter ofcontrib.auth.views.logout_then_login()will be removed. django.test.runner.setup_databases()será removido.django.utils.translation.string_concat()será removido.django.core.cache.backends.memcached.PyLibMCCachewill no longer support passingpylibmcbehavior settings as top-level attributes ofOPTIONS.- The
hostparameter ofdjango.utils.http.is_safe_url()will be removed. - Silencing of exceptions raised while rendering the
{% include %}template tag will be removed. DatabaseIntrospection.get_indexes()será removido.- The
authenticate()method of authentication backends will requirerequestas the first positional argument. - The
django.db.models.permalink()decorator will be removed. - The
USE_ETAGSsetting will be removed.CommonMiddlewareanddjango.utils.cache.patch_response_headers()will no longer set ETags. - O atributo
Model._meta.has_auto_fieldserá removido. - Support for regular expression groups with
iLmsu#inurl()will be removed. - Suporte para
Widget.render()métodos sem o argumentorendererserá removido.
2.0¶
Veja as notas da release do Django 1.9 para mais detalhes sobre essas mudanças.
- O argumento
weakdedjango.dispatch.signals.Signal.disconnect()será removido. django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()será removida.- O pacote
django.forms.extrasserá removido. - O helper
assignment_tagserá removido. - O argumento
hostemassertsRedirectsserá removido. A camada de compatibilidade que permite que URLs absolutas sejam consideradas iguais as URLs relativas quando o caminho é idêntico também será removido. Field.relserá removido.- O atributo
Field.remote_field.toserá removido. - O argumento
on_deleteparaForeignKeyeOneToOneFieldserá requerido. django.db.models.fields.add_lazy_relation()será removido.- Quando o suporte a time zone estiver habilitado, backends de banco de dados que não suportam time zones não converterão mais datetimes aware para valores naive em UTC quando esses valores são passados como parâmetros para consultas SQL executadas fora do ORM, ex. com
cursor.execute(). - O decorator
django.contrib.auth.tests.utils.skipIfCustomUser()será removido. - As classes
GeoManagereGeoQuerySetserão removidas. - O módulo
django.contrib.gis.geoipserá removido. - A verificação de
supports_recursionpara template loaders será removido de:django.template.engine.Engine.find_template()django.template.loader_tags.ExtendsNode.find_template()django.template.loaders.base.Loader.supports_recursion()django.template.loaders.cached.Loader.supports_recursion()
- Os métodos de template loaders
load_template()eload_template_sources()serão removidos. - O argumento
template_dirspara template loaders será removido.django.template.loaders.base.Loader.get_template()django.template.loaders.cached.Loader.cache_key()django.template.loaders.cached.Loader.get_template()django.template.loaders.cached.Loader.get_template_sources()django.template.loaders.filesystem.Loader.get_template_sources()
- O método
django.template.loaders.base.Loader.__call__()será removido. - Suporte para views com erros customizados com um parâmetro posicional será removido.
- o atributo
mime_typededjango.utils.feedgenerator.Atom1Feededjango.utils.feedgenerator.RssFeedserá removido para promovercontent_type. - The
app_nameargument todjango.conf.urls.include()will be removed. - Suporte a passagem de tuplas de 3 elementos como primeiro argumento no
include()será removido. - Suporte para setar o namespace de uma instância de URL sem um namespace de aplicação será removido.
Field._get_val_from_obj()será removido para promoverField.value_from_object().django.template.loaders.eggs.Loaderserá removido.- O parâmetro
current_apppara viewscontrib.authserá removido. - O argumento chave
callable_objparaSimpleTestCase.assertRaisesMessage()será removido. - Suporte para o atributo
allow_tagsem métodos deModelAdminserão removidos. - O argumento chave
enclosureemSyndicationFeed.add_item()será removido. - Os aliases de
django.template.loader.LoaderOriginedjango.template.base.StringOriginparadjango.template.base.Originserão removidos.
Veja a Django 1.10 release notes para mais detalhes sobre essas mudanças.
- A opção
makemigrations --exitserá removida. - Suporte para atribuição direta a uma reversa relação foreign key ou many-to-many deve ser removido
- Os métodos
get_srid()eset_srid()emdjango.contrib.gis.geos.GEOSGeometryserão removidos. - Os métodos
get_x(),set_x(),get_y(),set_y(),get_z(), eset_z()emdjango.contrib.gis.geos.Pointserão removidos. - Os métodos
get_coords()eset_coords()emdjango.contrib.gis.geos.Pointserão removidos. - A propriedade
cascaded_unionemdjango.contrib.gis.geos.MultiPolygonserão removidos. django.utils.functional.allow_lazy()será removido.- A opção
shell --plainserá removido. - O módulo
django.core.urlresolversserá removido. - O model
CommaSeparatedIntegerFieldserá removido. Um campo stub irá permanecer para compatibilidade com migrations passadas. - O suporte para o método do template
Context.has_key()será removido. - o Suporte aos métodos
django.core.files.storage.Storage.accessed_time(),created_time(), emodified_time()serão removidos. - O suporte para filtros de consulta usando o nome do modelo quando é definido um
Meta.default_related_nameserá removido. - O filtro de consulta
__searche o métodoDatabaseOperations.fulltext_search_sql()serão removidos. - A base para suporte à classes de “managers” personalizados sem um método
_apply_rel_filters()será removido. - O uso de
User.is_authenticated()eUser.is_anonymous()como métodos não será mais suportado. - O atributo privado
virtual_fieldsdoModel._metaserá removido. - O argumento privado nomeado
virtual_onlynoField.contribute_to_class()e navirtualnoModel._meta.add_field()será removido. - As “views”
javascript_catalog()ejson_catalog()serão removidas. - A função
django.contrib.gis.utils.precision_wkt()será removida. - Em uma herança de tabelas múltiplas, a promoção implícita de um campo
OneToOneFieldpara umparent_linkserá removida. - O suporte para
Widget._format_value()será removido. - Os métodos
get_directory_name()eget_filename()doFileFieldserão removidos. - A função
mark_for_escaping()e as classes que ela usa:EscapeData,EscapeBytes,EscapeText,EscapeString, eEscapeUnicodeserão removidas. - O filtro
escapeserá alterado para que use odjango.utils.html.conditional_escape(). Manager.use_for_related_fieldsserá removido.- A herança de um
Managerseguirá regras de herança MRO e aMeta.manager_inheritance_from_futurepara escolher esse comportamento será removida. - O suporte para middleware do tipo old-style usando o setting
settings.MIDDLEWARE_CLASSESserá removido.
1.10¶
Veja as notas da release do Django 1.8 para mais detalhes sobre essas mudanças.
- Suporte para a possibilidade de chamar o
SQLCompilerdiretamente como um alias para o seu métodoquote_name_unless_aliasserá removido. - As tags de template
cycleandfirstofserão removidas da biblioteca de tags de templatefuture. django.conf.urls.patterns()será removido.- Suporte para o argumento
prefixdodjango.conf.urls.i18n.i18n_patterns()será removido. SimpleTestCase.urlsserá removido.- Usar uma contagem incorreta de valores despacotados em uma tag de template
forirá lançar uma exceção ao invés de falhar silenciosamente. - A habilidade de inverter URLs usando a notação de ponto para definir o “caminho” Python será removida.
- A habilidade de usar um caminho Python contendo pontos para os settings
LOGIN_URLandLOGIN_REDIRECT_URLserá removida. - Suporte para o módulo
optparseserá descartado para custom management commands (trocado pleo móduloargparse). - A classe
django.core.management.NoArgsCommandserá removida. Use em seu lugar a classeBaseCommandque não recebe argumentos por padrão. - O módulo
django.core.context_processorsserá removido. - O módulo
django.db.models.sql.aggregatesserá removido. - O módulo
django.contrib.gis.db.models.sql.aggregatesserá removido. - Os métodos e propriedades de
django.db.sql.query.Querya seguir serão removidas:- Propriedades:
aggregateseaggregate_select - Métodos:
add_aggregate,set_aggregate_mask, eappend_aggregate_mask.
- Propriedades:
django.template.resolve_variableserá removido.- As APIs privadas abaixo serão removidas de
django.db.models.options.Options(Model._meta):get_field_by_name()get_all_field_names()get_fields_with_model()get_concrete_fields_with_model()get_m2m_with_model()get_all_related_objects()get_all_related_objects_with_model()get_all_related_many_to_many_objects()get_all_related_m2m_objects_with_model()
- O argumento
error_messagededjango.forms.RegexFieldserá removido. - O filtro
unordered_listnão irá mais suportar listas do estilo antigo. - Suporte a argumentos
viewno formato string paraurl()será removido. - O calço de compatibilidade com versões anteriores para renomear
django.forms.Form._has_changed()parahas_changed()foi removido. - O filter de template
removetagsserá removido. - As funções
remove_tags()estrip_entities()emdjango.utils.htmlserão removidas. - O argumento
is_admin_siteparadjango.contrib.auth.views.password_reset()será removido. django.db.models.field.subclassing.SubfieldBaseserá removido.django.utils.checksumsserá removido; suas funcionalidades estão inclusas nodjango-localflavor1.1+.- O atributo
original_content_type_idemdjango.contrib.admin.helpers.InlineAdminFormserá removido. - O calço de compatibilidade com versões anteriores para permitir
FormMixin.get_form()ser definido sem valor padrão para o seu argumentoform_classfoi removido. - As configurações abaixo serão removidas:
ALLOWED_INCLUDE_ROOTSTEMPLATE_CONTEXT_PROCESSORSTEMPLATE_DEBUGTEMPLATE_DIRSTEMPLATE_LOADERSTEMPLATE_STRING_IF_INVALID
- O alias de compatibilidade com versões anteriores
django.template.loader.BaseLoaderserá removido. - Objetos de template do Django retornados por
get_template()eselect_template()não irão mais aceitar umContextem seu métodorender(). - APIs de resposta de templates irão reforçar o uso de
dicte objetos de template dependentes de backend ao invés deContexteTemplaterespectivamente. - O
current_appparâmetro para as funções e classes abaixo será removido:django.shortcuts.render()django.template.Context()django.template.RequestContext()django.template.response.TemplateResponse()
- Os parâmetros
dictionaryecontext_instancepara as funções abaixo serão removidosdjango.shortcuts.render()django.shortcuts.render_to_response()django.template.loader.render_to_string()
- O parâmetro
dirspara as funções abaixo será removido:django.template.loader.get_template()django.template.loader.select_template()django.shortcuts.render()django.shortcuts.render_to_response()
- Verificação de sessão será habilitado independentemente de
'django.contrib.auth.middleware.SessionAuthenticationMiddleware'estar ou não dentro deMIDDLEWARE_CLASSES. - O atributo privado
django.db.models.Field.relatedserá removido. - A opção
--listdo comandomigrateserá removido. - A tag template
ssiserá removida. - Suporte para o operador de comparação
=na tag de templateifserá removido. - O calço de compatibilidade com versões anteriores para permitir
Storage.get_available_name()eStorage.save()ser definido sem um argumentomax_lengthserá removido. - Suporte para a sintaxe legada
%(<foo>)snoModelFormMixin.success_urlserá removido. - Os métodos do
GeoQuerySetde agregaçãocollect(),extent(),extent3d(),make_line(), eunionagg()serão removidos. - A abilidade para especificar
ContentType.nameao criar uma instância será removido. - Suporte para a assinatura antiga de
allow_migrateserá removido. Ele mudou deallow_migrate(self, db, model)paraallow_migrate(self, db, app_label, model_name=None, **hints). - Suporte para a sintaxe de
{% cycle %}que utiliza argumentos separados por vírgulas será removido. - O aviso que
Signeremite quando é fornecido um separador inválido irá se tornar uma exceção.
1.9¶
Veja as notas da release do Django 1.7 para mais detalhes nessas mudanças.
django.utils.dictconfigserá removido.django.utils.importlibserá removido.django.utils.tzinfoserá removido.django.utils.unittestserá removido.- O comando
syncdbserá removido. django.db.models.signals.pre_syncdbedjango.db.models.signals.post_syncdbserão removidos.allow_syncdbem roteadores de bancos de dados não irão mais ficar automaticamenteallow_migrate.- A sincronização automática de apps sem migrações será removida. Migrations se tornará compulsória para todos os apps a não ser que você passe a opção
--run-syncdbpara o comandomigrate. - Os SQL management commands para apps sem migrações, sql`,
sqlall,sqlclear,sqldropindexes, andsqlindexes, será removido. - Suporte para carregamento automático de fixtures
initial_datae dados SQL iniciais serão removidos. - Todos os modelos precisarão ser definidos dentro de aplicações instaladas ou declarados explicitamente
app_label. Além disso, não será possível importá-los antes de suas aplicações serem carregadas. Em particular, não será possível importar modelos dentro do pacote root de suas aplicações. - O model e form
IPAddressFieldserão removidos. Um campo stub irá permanecer para compatibilidade com migrations passadas. AppCommand.handle_app()não será mais suportado.RequestSiteeget_current_site()não irão mais ser importáveis dedjango.contrib.sites.models.- Suporte a FastCGI pelo comando de administração
runfcgiserá removido. Por favor faça deploy do seu projeto usando WSGI. django.utils.datastructures.SortedDictserá removido. Utilizecollections.OrderedDictda biblioteca padrão do Python.ModelAdmin.declared_fieldsetsserá removido.- Instâncias de
util.pyno código base do Django foram renomeadas parautils.pyem um esforço para unificar todos as referências a util e utils. Os módulos que fornecem compatibilidade com versões anteriores serão removidos.django.contrib.admin.utildjango.contrib.gis.db.backends.utildjango.db.backends.utildjango.forms.util
ModelAdmin.get_formsetsserá removido.- O calço de compatibilidade com versões anteriores introduzido para renomear o método
BaseMemcachedCache._get_memcache_timeout()paraget_backend_timeout()foi removido. - As opções``–natural`` e
-nparadumpdataserão removidas. - O argumento
use_natural_keysparaserializers.serialize()será removido. - A API privada
django.forms.forms.get_declared_fields()será removida. - A abilidade de utilizar o
SplitDateTimeWidgetcomDateTimeFieldserá removido. - A propriedade
WSGIRequest.REQUESTserá removida. - A classe
django.utils.datastructures.MergeDictserá removida. - Os códigos de linguagens
zh-cnezh-twserão removidos e trocados pelos códigos de linguagemzh-hanse ``zh-hant``respectivamente. - O “internal”
django.utils.functional.memoizeserá removido. django.core.cache.get_cacheserá removido. Ao invés dele, adicione as entradas convenientes aCACHESe usedjango.core.cache.caches.django.db.models.loadingserá removido.- Passar argumentos que possam ser invocados para querysets não será mais possível.
BaseCommand.requires_model_validation``será removido em favor de ``requires_system_checks. Admin validators serão trocados por admin checks.- Os atributos
ModelAdmin.validator_classedefault_validator_classserão removidos. ModelAdmin.validate()será removido.django.db.backends.DatabaseValidation.validate_fieldserá removido em favor do métodocheck_field.- O comando de administração
validateserá removido. django.utils.module_loading.import_by_pathserá removido em favor de``django.utils.module_loading.import_string``.- As tags de template `ssi` e
urlserão removidas da biblioteca de tags de templatefuture(usado durante o período de depreciação 1.3/1.4). django.utils.text.javascript_quoteserá removido.- A configuração de bancos de dados de teste com entradas independentes nos settings dos bancos de dados, prefixado com
TEST_, não será mais suportado. - A opção cache_choices para
ModelChoiceFieldeModelMultipleChoiceFieldserá removido. - O valor padrão do
RedirectView.permanentatributo irá mudar deTrueparaFalse. django.contrib.sitemaps.FlatPageSitemapserá removido em favor dedjango.contrib.flatpages.sitemaps.FlatPageSitemap.- A API privada
django.test.utils.TestTemplateLoaderserá removida. - O módulo
django.contrib.contenttypes.genericserá removido. - As APIs privadas
django.db.models.sql.where.WhereNode.make_atom()edjango.db.models.sql.where.Constraintserão removidos.
1.8¶
Veja as notas de release Django 1.6 para mais detalhes sobre essas mudanças.
django.contrib.commentsserá removido.- As APIs de gerenciamento de transações seguintes serão removidas:
TransactionMiddleware,- Os decorators e context managers
autocommit,commit_on_success, ecommit_manually, definidos emdjango.db.transaction, - As funções
commit_unless_managederollback_unless_managed, também definidos emdjango.db.transaction, - O setting
TRANSACTIONS_MANAGED.
- As tags de template
cycleefirstofirão auto-escapar seus argumentos. Em 1.6 e 1.7, esse comportamento é providenciado pela versão dessas tags da biblioteca de tags de templatefuture. - The
SEND_BROKEN_LINK_EMAILSsetting will be removed. Add thedjango.middleware.common.BrokenLinkEmailsMiddlewaremiddleware to yourMIDDLEWARE_CLASSESsetting instead. django.middleware.doc.XViewMiddlewareserá removido. Ao invés dele, usedjango.contrib.admindocs.middleware.XViewMiddleware.Model._meta.module_namefoi renomeado paramodel_name.- Removido o calço de compatibilidade com versões anteriores introduzido para renomear
get_query_sete métodos do queryset similares. Isso afeta as seguintes classes:BaseModelAdmin,ChangeList,BaseCommentNode,GenericForeignKey,Manager,SingleRelatedObjectDescriptoreReverseSingleRelatedObjectDescriptor. - Remove o calço de compatibilidade com versões anteriores introduzido para renomear os atributos
ChangeList.root_query_seteChangeList.query_set. django.views.defaults.shortcutserá removido, como parte do objetivo de remover todas as referências adjango.contribdo núcleo do banco de dados do Django. Ao invés dele usedjango.contrib.contenttypes.views.shortcut.django.conf.urls.shortcuttambém será removido.- Support for the Python Imaging Library (PIL) module will be removed, as it no longer appears to be actively maintained & does not work on Python 3.
- As APIs privadas seguintes serão removidas:
django.db.backenddjango.db.close_connection()django.db.backends.creation.BaseDatabaseCreation.set_autocommit()django.db.transaction.is_managed()django.db.transaction.managed()
django.forms.widgets.RadioInputserá removido em favor dedjango.forms.widgets.RadioChoiceInput.- O módulo
django.test.simplee a classedjango.test.simple.DjangoTestSuiteRunnerserá removida. Utilize no lugar deledjango.test.runner.DiscoverRunner. - O módulo
django.test._doctestserá removido. Ao invés disso use o módulo doctest module da biblioteca padrão do Python. - O setting
CACHE_MIDDLEWARE_ANONYMOUS_ONLYserá removido. - Utilização do Hold down “Control”, or “Command” em um Mac, para selecionar mais de um. string para sobreescrever ou apensar para o
help_textprovidenciado pelos usuários em forms para campos de um model ManyToMany não serão mais realizados pelo Django seja na camada do model ou na camada de forms. - A permissão
Model._meta.get_(add|change|delete)_permissionserá removida. - A chave de sessão
django_languagenão será mais lida para compatibilidade com versões anteriores. - Geographic Sitemaps será removido (
django.contrib.gis.sitemaps.views.indexedjango.contrib.gis.sitemaps.views.sitemap). django.utils.html.fix_ampersands, o filtro de templatefix_ampersandsedjango.utils.html.clean_htmlserão removidos seguindo uma depreciação acelerada.
1.7¶
Veja as notas da release do Django 1.5 para mais detalhes sobre essas mudanças.
- O módulo
django.utils.simplejsonserá removido. A biblioteca padrão provêjsonque deve ser usado em seu lugar. - A função
django.utils.itercompat.productserá removida. A versão embutida no Python deve ser usada em seu lugar. - Auto-correção dos settings INSTALLED_APPS e TEMPLATE_DIRS quando eles são especificados como uma string ao invés de uma tupla será removido e irá lançar uma exceção.
- O argumento
mimetypepara métodos__init__deHttpResponse,SimpleTemplateResponse, eTemplateResponse, será removido.content_typedeve ser usado em seu lugar. Isso também se aplica ao atalhorender_to_response()e as views de sitemap,index()esitemap(). - Quando
HttpResponseé instanciado com um iterator, ou quandocontenté setado para um iterator, esse iterator será imediatamente consumido. - O setting
AUTH_PROFILE_MODULE, e o métodoget_profile()do model User serão removidos. - O comando de gerenciamento
cleanupserá removido. Ele foi trocado porclearsessions. - O script
daily_cleanup.pyserá removido. - O argumento chave
depthserá removido deselect_related(). - As funções não documentadas
get_warnings_state()/restore_warnings_state()dodjango.test.utilse os métodossave_warnings_state()/restore_warnings_state()django.test.*TestCase foram depreciados. Use owarnings.catch_warningscontext manager disponível a partir do Python 2.6 em seu lugar. - O método não documentado
check_for_test_cookienaAuthenticationFormserá removido seguindo uma depreciação acelerada. Usuários fazendo subclasses desse form devem remover as chamadas para esse método, e ao invés disso garantir que suas views relacionadas a autenticação são protegidas de CSRF, o que garante que os cookies estão habilitados. - A versão de
django.contrib.auth.views.password_reset_confirm()que suporta IDs de usuários codificado com base36 (django.contrib.auth.views.password_reset_confirm_uidb36) será removida. Se o seu site está rodando Django 1.6 por mais dePASSWORD_RESET_TIMEOUT_DAYS, essa mudança não terá efeito. Caso contrário, qualquer link de reset de senha gerado antes de você atualizar para o Django 1.7 não irão funcionar após a atualização. - O mix-in
django.utils.encoding.StrAndUnicode` será removido. Em seu lugar defina um método ``__str__e aplique o decoratorpython_2_unicode_compatible().
1.6¶
Veja as notas da release do Django 1.4 para mais detalhes sobre essas mudanças.
django.contrib.databrowseserá removido.django.contrib.localflavorserá removido seguindo uma depreciação acelerada.django.contrib.markupserá removido seguindo uma depreciação acelerada.- Os módulos de compatibilidade
django.utils.copycompatedjango.utils.hashcompatassim como as funçõesdjango.utils.itercompat.alledjango.utils.itercompat.anyserão removidos. Em seu lugar utiize as versões embutidas no Python. - Os decorators
csrf_response_exemptecsrf_view_exemptserão removidos. Desde a versão 1.4csrf_response_exempttem sido um no-op (ele retorna a mesma função), ecsrf_view_exempttem sido um sinônimo paradjango.views.decorators.csrf.csrf_exempt, que deve ser usado para trocá-lo. - O backend
django.core.cache.backends.memcached.CacheClassfoi dividido em dois no Django 1.3 para introduzir o suporte a PyLibMC. O históricoCacheClassserá removido em favor dedjango.core.cache.backends.memcached.MemcachedCache. - Os objetos
django.contrib.localflavor.ukprefixados com UK só serão acessíveis através de seus nomes prefixados com GB (GB é o código ISO 3166 corretp para o Reino Unido). - Os settings
IGNORABLE_404_STARTSeIGNORABLE_404_ENDSforam substituídos porIGNORABLE_404_URLSna release 1.4. Eles serão removidos. - O form wizard foi refatorado para usar views baseads em classes com backends plugáveis na 1.4. A implementação prévia será removida.
- Formas legadas de chamar
cache_page()será removida. - O calço de compatibilidade para adicionar automaticamente um filtro de debug-false para o logging handler
'mail_admins'será removido. O settingLOGGINGdeve incluir esse filtro explicitamente se ele for desejado. - As funções embutidas de truncamento
django.utils.text.truncate_words()edjango.utils.text.truncate_html_words()serão removidas em favor da classedjango.utils.text.Truncator. - A classe
django.contrib.gis.geoip.GeoIPfoi movida paradjango.contrib.gis.geoipna 1.4 – o atalho emdjango.contrib.gis.utilsserá removido. django.conf.urls.defaultswill be removed. The functionsinclude(),patterns(), andurl(), plushandler404andhandler500are now available throughdjango.conf.urls.- As funções
setup_environ()eexecute_manager()serão removidas dodjango.core.management. Isso também significa que o velho (pre-1.4) estilo do arquivomanage.pynão irá mais funcionar. - Ativar as flags
is_safeeneeds_autoescapecomo atributos de funções de filtro de template não será mais suportado. - O atributo
HttpRequest.raw_post_datafoi renomeado paraHttpRequest.bodyna 1.4. A compatibilidade com versões anteriores será removida –HttpRequest.raw_post_datanão irá mais funcionar. - O valor para o parâmetro
post_url_continueemModelAdmin.response_add()terá que serNone(para redirecionar para novos objetos edit page criados) ou uma url pré-formatada. Formatos de strings, tais como o antigo padrão'../%s/', não serão mais aceitos.
1.5¶
Veja as notas de release do Django 1.3 para mais detalhes sobre essas mudanças.
- Começar o Django sem um
SECRET_KEYirá resultar em uma exceção ao invés deDeprecationWarning. (Isso foi acelerado do caminho usual de depreciação; veja as notas de release do Django 1.4.) - O request handler
mod_pythonserá removido. O handlermod_wsgideve ser usado em seu lugar. - O atributo de
templateem objetosdjango.test.client.Responseretornados por test client será removido. O atributotemplatesdeve ser usado em seu lugar. - O
django.test.simple.DjangoTestRunnerserá removido. Ao invés dele use uma classe nativa de teste unitário. As funcionalidades dedjango.test.simple.DjangoTestRunner(incluindo fail-fast e terminação de test com Ctrl-C) podem ser fornecidas atualemente pelaTextTestRunner. - A função não documentada
django.contrib.formtools.utils.security_hashserá removida. Ao invés dela usedjango.contrib.formtools.utils.form_hmac. - Os módulos baseados em funções de view genéricas serão removidos em favor de seus equivalentes baseados em classes, descritos aqui.
- O``django.core.servers.basehttp.AdminMediaHandler`` será removido. Em seu lugar use
django.contrib.staticfiles.handlers.StaticFilesHandler. - As bibliotecas de tags de template
adminmediae a tag de template{% admin_media_prefix %}serão removidas em favor da manipulação genérica de arquivos estáticos. (Isso é mais rápido do que o caminho de depreciação usual; veja as notas de release do Django 1.4.) - As tags de template
urlessiserão modificadas de modo que o primeiro argumento para cada tag é uma variável de template, não uma string implícita. Na 1.4, esse comportamento era fornecido por uma versão da tag dentro da biblioteca de tagsfuture. - Os comandos de administração
resetesqlresetserão removidos. - Backends de autenticação terão que suportar um usuário inativo sendo passado para todos os métodos que lidem com permissões. O atributo
supports_inactive_usernão será mais verificado e pode ser removido de backends customizados. - O
transform()irá lançarGEOSExceptionquando chamado em uma geometria sem valor SRID. django.http.CompatCookieserá removido em favor dedjango.http.SimpleCookie.django.core.context_processors.PermWrapperedjango.core.context_processors.PermLookupDictserão removidos em favor dos correspondentesdjango.contrib.auth.context_processors.PermWrapperedjango.contrib.auth.context_processors.PermLookupDict, respectivamente.- Os settings
MEDIA_URLouSTATIC_URLterão que terminar com um slash para garantir que existe uma forma consistente de combinar caminhos nos templates. django.db.models.fields.URLField.verify_existsserá removido. A funcionalidade foi depreciada em 1.3.1 devido a problemas de segurança e performance intratáveis e seguirá um tempo de depreciação ligeiramente acelerado.- Traduções localizadas sob o então chamado project path serão ignoradas durante o processo de construção da tradução executado em runtime. O setting
LOCALE_PATHSpode ser usado para a mesma tarefa quando incluido o caminho do sistema de arquivos para um diretório delocalecontendo traduções não específicas de apps em seu valor. - O app contrib Markup não irá mais suportar versões da biblioteca de Markdown do Python anteriores a 2.1. Uma linha de tempo acelerada será usada já que isso era uma depreciação relacionada a segurança.
- O setting
CACHE_BACKENDserá removido. O backend (ou os backends) de cache deve ser especificado no settingCACHES.
1.4¶
Veja as notas de release do Django 1.2 para mais detalhes sobre essas mudanças.
CsrfResponseMiddlewareeCsrfMiddlewareserão removidos. Use a tag de template{% csrf_token %}``dentro dos forms para habilitar a proteção CSRF. ``CsrfViewMiddlewarepermanece e é habilitada por padrão.- Os imports antigos da funcionalidade CSRF (
django.contrib.csrf.*), que foi movido para o core em 1.2, será removido. - O módulo
django.contrib.gis.db.backendserá removido em favor dos backends específicos. SMTPConnectionserá removido em favor de uma API de backend genérica.- As funções de geração SQL many to many nos backends de banco de dados serão removidos.
- A habilidade de usar a família de settings top-level
DATABASE_*para definir conexões de banco de dados será removida. - A habilidade para usar notações curtas para especificar o backend do banco de dados (ex
sqlite3ao invés dedjango.db.backends.sqlite3) será removido. - Os métodos
get_db_prep_save,get_db_prep_valueeget_db_prep_lookupterão que suportar múltiplos bancos de dados. - O model
Message(emdjango.contrib.auth), o seu manager no modelUser(user.message_set), e os métodos associados (user.message_set.create()euser.get_and_delete_messages()), serão removidos. O framework messages deve ser usado em seu lugar. A variávelmessagesrelacionada e retornada pelo processador de contexto de autenticação também será removida. Note que isso significa que a aplicação admin irá depender do processador de contexto de mensagens. - Backends de autenticação terão que suportar o parâmetro
objpara verificação de permissões. O atributosupports_object_permissionsnão irá mais ser checado e pode ser removido dos backends customizados. - Backends de autenticação terá que suportar a classe
AnonymousUsersendo passada para todos os métodos que lidam com permissão. A variávelsupports_anonymous_usernão irá mais ser checada e pode ser removida dos backends customizados. - A habilidade para especificar um template loader invocável ao invés de uma classe
Loaderirá ser removido, assim como as funçõesload_template_sourceque estão incluídas com os template loaders embutidos para compatibilidade com versões anteriores. django.utils.translation.get_date_formats()edjango.utils.translation.get_partial_date_formats(). Essas funções serão removidas; use o locale-awaredjango.utils.formats.get_format()para obter os formatos apropriados.- Em
django.forms.fields, as contantes:DEFAULT_DATE_INPUT_FORMATS,DEFAULT_TIME_INPUT_FORMATSeDEFAULT_DATETIME_INPUT_FORMATSserão removidas. Utilizedjango.utils.formats.get_format()para obter os formatos apropriados. - A habilidade de usar um executor de testes baseado em função será removido, assim como o executor de teste
django.test.simple.run_tests(). - A view
views.feed()e a classefeeds.Feedemdjango.contrib.syndication``serão removidos. A view baseada em classe ``views.Feeddeve ser usada em seu lugar. django.core.context_processors.auth. Essa release irá remover o método antigo em favor do novo método emdjango.contrib.auth.context_processors.auth.- O backend do banco de dados
postgresqlserá removido, utilize o backendpostgresql_psycopg2em seu lugar. - A linguagem de código
noserá removida e foi trocada pela linguagem de códigonb. - Backends de autenticação terão que definir o atributo booleano
supports_inactive_useraté a versão 1.5 onde se assumirá que todos os backends irão tratar usuários inativos. django.db.models.fields.XMLFieldserá removido. Isso foi depreciado como parte da release 1.3. Um cronograma acelerado de depreciação foi usado porque o campo não preenche nenhum outro propósito além de um simplesTextFielddesde a remoção deoldforms. Todos os usos deXMLFieldpodem ser substituídos comTextField.- O parâmetro não documentado
mixinpara o métodoopen()dedjango.core.files.storage.Storage(e subclasses) serão removidas.
1.3¶
Veja as notas da release do Django 1.1 para mais detalhes sobre essas mudanças.
AdminSite.root(). Esse método de ligação de URLs admin será removido em favor da inclusão deadmin.site.urls.- Backends de autenticação precisam definir os atributos booleanos
supports_object_permissionsesupports_anonymous_useraté a versão 1.4, na qual será assumido que todos os backends suportam essas opções.