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.
2.0¶
Veja as notas da release do Django 1.9 para mais detalhes sobre essas mudanças.
O argumento
weak
dedjango.dispatch.signals.Signal.disconnect()
será removido.django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()
será removida.O pacote
django.forms.extras
será removido.O helper
assignment_tag
será removido.O argumento
host
emassertsRedirects
será 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.rel
será removido.O atributo
Field.remote_field.to
será removido.O argumento
on_delete
paraForeignKey
eOneToOneField
será 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
GeoManager
eGeoQuerySet
serão removidas.O módulo
django.contrib.gis.geoip
será removido.A verificação de
supports_recursion
para 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_dirs
para 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_type
dedjango.utils.feedgenerator.Atom1Feed
edjango.utils.feedgenerator.RssFeed
será removido para promovercontent_type
.O argumento
app_name
eminclude()
será removido.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.Loader
será removido.O parâmetro
current_app
para viewscontrib.auth
será removido.O argumento chave
callable_obj
paraSimpleTestCase.assertRaisesMessage()
será removido.Suporte para o atributo
allow_tags
em métodos deModelAdmin
serão removidos.O argumento chave
enclosure
emSyndicationFeed.add_item()
será removido.Os aliases de
django.template.loader.LoaderOrigin
edjango.template.base.StringOrigin
paradjango.template.base.Origin
serão removidos.
Veja a Django 1.10 release notes para mais detalhes sobre essas mudanças.
A opção
makemigrations --exit
será 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.GEOSGeometry
serão removidos.Os métodos
get_x()
,set_x()
,get_y()
,set_y()
,get_z()
, eset_z()
emdjango.contrib.gis.geos.Point
serão removidos.Os métodos
get_coords()
eset_coords()
emdjango.contrib.gis.geos.Point
serão removidos.A propriedade
cascaded_union
emdjango.contrib.gis.geos.MultiPolygon
serão removidos.django.utils.functional.allow_lazy()
será removido.A opção
shell --plain
será removido.O módulo
django.core.urlresolvers
será removido.O model
CommaSeparatedIntegerField
será 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_name
será removido.O filtro de consulta
__search
e 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_fields
doModel._meta
será removido.O argumento privado nomeado
virtual_only
noField.contribute_to_class()
e navirtual
noModel._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
OneToOneField
para umparent_link
será removida.O suporte para
Widget._format_value()
será removido.Os métodos
get_directory_name()
eget_filename()
doFileField
serão removidos.A função
mark_for_escaping()
e as classes que ela usa:EscapeData
,EscapeBytes
,EscapeText
,EscapeString
, eEscapeUnicode
serão removidas.O filtro
escape
será alterado para que use odjango.utils.html.conditional_escape()
.Manager.use_for_related_fields
será removido.A herança de um
Manager
seguirá regras de herança MRO e aMeta.manager_inheritance_from_future
para escolher esse comportamento será removida.O suporte para middleware do tipo old-style usando o setting
settings.MIDDLEWARE_CLASSES
será 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
SQLCompiler
diretamente como um alias para o seu métodoquote_name_unless_alias
será removido.As tags de template
cycle
andfirstof
serão removidas da biblioteca de tags de templatefuture
.django.conf.urls.patterns()
será removido.Suporte para o argumento
prefix
dodjango.conf.urls.i18n.i18n_patterns()
será removido.SimpleTestCase.urls
será removido.Usar uma contagem incorreta de valores despacotados em uma tag de template
for
irá 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_URL
andLOGIN_REDIRECT_URL
será removida.Suporte para o módulo
optparse
será descartado para custom management commands (trocado pleo móduloargparse
).A classe
django.core.management.NoArgsCommand
será removida. Use em seu lugar a classeBaseCommand
que não recebe argumentos por padrão.O módulo
django.core.context_processors
será removido.O módulo
django.db.models.sql.aggregates
será removido.O módulo
django.contrib.gis.db.models.sql.aggregates
será removido.Os métodos e propriedades de
django.db.sql.query.Query
a seguir serão removidas:Propriedades:
aggregates
eaggregate_select
Métodos:
add_aggregate
,set_aggregate_mask
, eappend_aggregate_mask
.
django.template.resolve_variable
será 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_message
dedjango.forms.RegexField
será removido.O filtro
unordered_list
não irá mais suportar listas do estilo antigo.Suporte a argumentos
view
no 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
removetags
será removido.As funções
remove_tags()
estrip_entities()
emdjango.utils.html
serão removidas.O argumento
is_admin_site
paradjango.contrib.auth.views.password_reset()
será removido.django.db.models.field.subclassing.SubfieldBase
será removido.django.utils.checksums
será removido; suas funcionalidades estão inclusas nodjango-localflavor
1.1+.O atributo
original_content_type_id
emdjango.contrib.admin.helpers.InlineAdminForm
será 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_class
foi removido.As configurações abaixo serão removidas:
ALLOWED_INCLUDE_ROOTS
TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_DEBUG
TEMPLATE_DIRS
TEMPLATE_LOADERS
TEMPLATE_STRING_IF_INVALID
O alias de compatibilidade com versões anteriores
django.template.loader.BaseLoader
será removido.Objetos de template do Django retornados por
get_template()
eselect_template()
não irão mais aceitar umContext
em seu métodorender()
.APIs de resposta de templates irão reforçar o uso de
dict
e objetos de template dependentes de backend ao invés deContext
eTemplate
respectivamente.O
current_app
parâ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
dictionary
econtext_instance
para as funções abaixo serão removidosdjango.shortcuts.render()
django.shortcuts.render_to_response()
django.template.loader.render_to_string()
O parâmetro
dirs
para 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.related
será removido.A opção
--list
do comandomigrate
será removido.A tag template
ssi
será removida.Suporte para o operador de comparação
=
na tag de templateif
será removido.O calço de compatibilidade com versões anteriores para permitir
Storage.get_available_name()
eStorage.save()
ser definido sem um argumentomax_length
será removido.Suporte para a sintaxe legada
%(<foo>)s
noModelFormMixin.success_url
será removido.Os métodos do
GeoQuerySet
de agregaçãocollect()
,extent()
,extent3d()
,make_line()
, eunionagg()
serão removidos.A abilidade para especificar
ContentType.name
ao criar uma instância será removido.Suporte para a assinatura antiga de
allow_migrate
será 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
Signer
emite 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.dictconfig
será removido.django.utils.importlib
será removido.django.utils.tzinfo
será removido.django.utils.unittest
será removido.O comando
syncdb
será removido.django.db.models.signals.pre_syncdb
edjango.db.models.signals.post_syncdb
serão removidos.allow_syncdb
em 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-syncdb
para 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_data
e 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
IPAddressField
serão removidos. Um campo stub irá permanecer para compatibilidade com migrations passadas.AppCommand.handle_app()
não será mais suportado.RequestSite
eget_current_site()
não irão mais ser importáveis dedjango.contrib.sites.models
.Suporte a FastCGI pelo comando de administração
runfcgi
será removido. Por favor faça deploy do seu projeto usando WSGI.django.utils.datastructures.SortedDict
será removido. Utilizecollections.OrderedDict
da biblioteca padrão do Python.ModelAdmin.declared_fieldsets
será removido.Instâncias de
util.py
no código base do Django foram renomeadas parautils.py
em 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.util
django.contrib.gis.db.backends.util
django.db.backends.util
django.forms.util
ModelAdmin.get_formsets
será 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
-n
paradumpdata
serão removidas.O argumento
use_natural_keys
paraserializers.serialize()
será removido.A API privada
django.forms.forms.get_declared_fields()
será removida.A abilidade de utilizar o
SplitDateTimeWidget
comDateTimeField
será removido.A propriedade
WSGIRequest.REQUEST
será removida.A classe
django.utils.datastructures.MergeDict
será removida.Os códigos de linguagens
zh-cn
ezh-tw
serão removidos e trocados pelos códigos de linguagemzh-hans
e ``zh-hant``respectivamente.O “internal”
django.utils.functional.memoize
será removido.django.core.cache.get_cache
será removido. Ao invés dele, adicione as entradas convenientes aCACHES
e usedjango.core.cache.caches
.django.db.models.loading
será 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_class
edefault_validator_class
serão removidos.ModelAdmin.validate()
será removido.django.db.backends.DatabaseValidation.validate_field
será removido em favor do métodocheck_field
.O comando de administração
validate
será removido.django.utils.module_loading.import_by_path
será removido em favor de``django.utils.module_loading.import_string``.As tags de template `ssi` e
url
serão removidas da biblioteca de tags de templatefuture
(usado durante o período de depreciação 1.3/1.4).django.utils.text.javascript_quote
será 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
ModelChoiceField
eModelMultipleChoiceField
será removido.O valor padrão do
RedirectView.permanent
atributo irá mudar deTrue
paraFalse
.django.contrib.sitemaps.FlatPageSitemap
será removido em favor dedjango.contrib.flatpages.sitemaps.FlatPageSitemap
.A API privada
django.test.utils.TestTemplateLoader
será removida.O módulo
django.contrib.contenttypes.generic
será removido.As APIs privadas
django.db.models.sql.where.WhereNode.make_atom()
edjango.db.models.sql.where.Constraint
serão removidos.
1.8¶
Veja as notas de release Django 1.6 para mais detalhes sobre essas mudanças.
django.contrib.comments
será 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_managed
erollback_unless_managed
, também definidos emdjango.db.transaction
,O setting
TRANSACTIONS_MANAGED
.
As tags de template
cycle
efirstof
irã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
.O setting
SEND_BROKEN_LINK_EMAILS
será removido. Para substitui-lo, adicione odjango.middleware.common.BrokenLinkEmailsMiddleware
middlewareMIDDLEWARE_CLASSES
no seu setting.django.middleware.doc.XViewMiddleware
será removido. Ao invés dele, usedjango.contrib.admindocs.middleware.XViewMiddleware
.Model._meta.module_name
foi renomeado paramodel_name
.Removido o calço de compatibilidade com versões anteriores introduzido para renomear
get_query_set
e métodos do queryset similares. Isso afeta as seguintes classes:BaseModelAdmin
,ChangeList
,BaseCommentNode
,GenericForeignKey
,Manager
,SingleRelatedObjectDescriptor
eReverseSingleRelatedObjectDescriptor
.Remove o calço de compatibilidade com versões anteriores introduzido para renomear os atributos
ChangeList.root_query_set
eChangeList.query_set
.django.views.defaults.shortcut
será removido, como parte do objetivo de remover todas as referências adjango.contrib
do núcleo do banco de dados do Django. Ao invés dele usedjango.contrib.contenttypes.views.shortcut
.django.conf.urls.shortcut
também será removido.Suporte ao módulo Python Imaging Library (PIL) será removido, já que ele não aparece estar ativo e mantido e não funciona no Python 3.
As APIs privadas seguintes serão removidas:
django.db.backend
django.db.close_connection()
django.db.backends.creation.BaseDatabaseCreation.set_autocommit()
django.db.transaction.is_managed()
django.db.transaction.managed()
django.forms.widgets.RadioInput
será removido em favor dedjango.forms.widgets.RadioChoiceInput
.O módulo
django.test.simple
e a classedjango.test.simple.DjangoTestSuiteRunner
será removida. Utilize no lugar deledjango.test.runner.DiscoverRunner
.O módulo
django.test._doctest
será removido. Ao invés disso use o módulo doctest module da biblioteca padrão do Python.O setting
CACHE_MIDDLEWARE_ANONYMOUS_ONLY
será 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_text
providenciado 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)_permission
será removida.A chave de sessão
django_language
não será mais lida para compatibilidade com versões anteriores.Geographic Sitemaps será removido (
django.contrib.gis.sitemaps.views.index
edjango.contrib.gis.sitemaps.views.sitemap
).django.utils.html.fix_ampersands
, o filtro de templatefix_ampersands
edjango.utils.html.clean_html
serã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.simplejson
será removido. A biblioteca padrão provêjson
que deve ser usado em seu lugar.A função
django.utils.itercompat.product
será 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
mimetype
para métodos__init__
deHttpResponse
,SimpleTemplateResponse
, eTemplateResponse
, será removido.content_type
deve 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
cleanup
será removido. Ele foi trocado porclearsessions
.O script
daily_cleanup.py
será removido.O argumento chave
depth
será removido deselect_related()
.As funções não documentadas
get_warnings_state()
/restore_warnings_state()
dodjango.test.utils
e os métodossave_warnings_state()
/restore_warnings_state()
django.test.*TestCase foram depreciados. Use owarnings.catch_warnings
context manager disponível a partir do Python 2.6 em seu lugar.O método não documentado
check_for_test_cookie
naAuthenticationForm
será 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.databrowse
será removido.django.contrib.localflavor
será removido seguindo uma depreciação acelerada.django.contrib.markup
será removido seguindo uma depreciação acelerada.Os módulos de compatibilidade
django.utils.copycompat
edjango.utils.hashcompat
assim como as funçõesdjango.utils.itercompat.all
edjango.utils.itercompat.any
serão removidos. Em seu lugar utiize as versões embutidas no Python.Os decorators
csrf_response_exempt
ecsrf_view_exempt
serão removidos. Desde a versão 1.4csrf_response_exempt
tem sido um no-op (ele retorna a mesma função), ecsrf_view_exempt
tem sido um sinônimo paradjango.views.decorators.csrf.csrf_exempt
, que deve ser usado para trocá-lo.O backend
django.core.cache.backends.memcached.CacheClass
foi dividido em dois no Django 1.3 para introduzir o suporte a PyLibMC. O históricoCacheClass
será removido em favor dedjango.core.cache.backends.memcached.MemcachedCache
.Os objetos
django.contrib.localflavor.uk
prefixados 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_STARTS
eIGNORABLE_404_ENDS
foram substituídos porIGNORABLE_404_URLS
na 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 settingLOGGING
deve 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.GeoIP
foi movida paradjango.contrib.gis.geoip
na 1.4 – o atalho emdjango.contrib.gis.utils
será removido.django.conf.urls.defaults
será removida. A funçãoinclude()
,patterns()
eurl()
além dehandler404
,handler500
, agora estão disponíveis através dedjango.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.py
não irá mais funcionar.Ativar as flags
is_safe
eneeds_autoescape
como atributos de funções de filtro de template não será mais suportado.O atributo
HttpRequest.raw_post_data
foi renomeado paraHttpRequest.body
na 1.4. A compatibilidade com versões anteriores será removida –HttpRequest.raw_post_data
não irá mais funcionar.O valor para o parâmetro
post_url_continue
emModelAdmin.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_KEY
irá 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_python
será removido. O handlermod_wsgi
deve ser usado em seu lugar.O atributo de
template
em objetosdjango.test.client.Response
retornados por test client será removido. O atributotemplates
deve ser usado em seu lugar.O
django.test.simple.DjangoTestRunner
será 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_hash
será 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
adminmedia
e 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
url
essi
serã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
reset
esqlreset
serã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_user
não será mais verificado e pode ser removido de backends customizados.O
transform()
irá lançarGEOSException
quando chamado em uma geometria sem valor SRID.django.http.CompatCookie
será removido em favor dedjango.http.SimpleCookie
.django.core.context_processors.PermWrapper
edjango.core.context_processors.PermLookupDict
serão removidos em favor dos correspondentesdjango.contrib.auth.context_processors.PermWrapper
edjango.contrib.auth.context_processors.PermLookupDict
, respectivamente.Os settings
MEDIA_URL
ouSTATIC_URL
terão que terminar com um slash para garantir que existe uma forma consistente de combinar caminhos nos templates.django.db.models.fields.URLField.verify_exists
será 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_PATHS
pode ser usado para a mesma tarefa quando incluido o caminho do sistema de arquivos para um diretório delocale
contendo 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_BACKEND
será 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.
CsrfResponseMiddleware
eCsrfMiddleware
serão removidos. Use a tag de template{% csrf_token %}``dentro dos forms para habilitar a proteção CSRF. ``CsrfViewMiddleware
permanece 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.backend
será removido em favor dos backends específicos.SMTPConnection
será 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
sqlite3
ao invés dedjango.db.backends.sqlite3
) será removido.Os métodos
get_db_prep_save
,get_db_prep_value
eget_db_prep_lookup
terã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ávelmessages
relacionada 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
obj
para verificação de permissões. O atributosupports_object_permissions
não irá mais ser checado e pode ser removido dos backends customizados.Backends de autenticação terá que suportar a classe
AnonymousUser
sendo passada para todos os métodos que lidam com permissão. A variávelsupports_anonymous_user
nã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
Loader
irá ser removido, assim como as funçõesload_template_source
que 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_FORMATS
eDEFAULT_DATETIME_INPUT_FORMATS
serã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.Feed
emdjango.contrib.syndication``serão removidos. A view baseada em classe ``views.Feed
deve 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
postgresql
será removido, utilize o backendpostgresql_psycopg2
em seu lugar.A linguagem de código
no
será removida e foi trocada pela linguagem de códigonb
.Backends de autenticação terão que definir o atributo booleano
supports_inactive_user
até a versão 1.5 onde se assumirá que todos os backends irão tratar usuários inativos.django.db.models.fields.XMLField
será 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 simplesTextField
desde a remoção deoldforms
. Todos os usos deXMLField
podem ser substituídos comTextField
.O parâmetro não documentado
mixin
para 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_permissions
esupports_anonymous_user
até a versão 1.4, na qual será assumido que todos os backends suportam essas opções.