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.
See the Django 2.0 release notes for more details on these changes.
django.db.backends.postgresql_psycopg2 module will be removed.django.shortcuts.render_to_response() will be removed.DEFAULT_CONTENT_TYPE setting will be removed.HttpRequest.xreadlines() will be removed.context argument of Field.from_db_value() and
Expression.convert_value() will be removed.field_name keyword argument of QuerySet.earliest() and
latest() will be removed.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(), e password_reset_complete() serão removidos.extra_context parameter of contrib.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.PyLibMCCache will no longer support
passing pylibmc behavior settings as top-level attributes of OPTIONS.host parameter of django.utils.http.is_safe_url() will be
removed.{% include %} template
tag will be removed.DatabaseIntrospection.get_indexes() será removido.authenticate() method of authentication backends will require
request as the first positional argument.django.db.models.permalink() decorator will be removed.USE_ETAGS setting will be removed. CommonMiddleware and
django.utils.cache.patch_response_headers() will no longer set ETags.Model._meta.has_auto_field será removido.iLmsu# in url() will be
removed.Widget.render() métodos sem o argumento renderer será removido.Veja as notas da release do Django 1.9 para mais detalhes sobre essas mudanças.
weak de django.dispatch.signals.Signal.disconnect() será removido.django.db.backends.base.BaseDatabaseOperations.check_aggregate_support() será removida.django.forms.extras será removido.assignment_tag será removido.host em assertsRedirects 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.Field.remote_field.to será removido.on_delete para ForeignKey e OneToOneField será requerido.django.db.models.fields.add_lazy_relation() será removido.cursor.execute().django.contrib.auth.tests.utils.skipIfCustomUser() será removido.GeoManager e GeoQuerySet serão removidas.django.contrib.gis.geoip será removido.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()load_template() e load_template_sources() serão removidos.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()django.template.loaders.base.Loader.__call__() será removido.mime_type de django.utils.feedgenerator.Atom1Feed e django.utils.feedgenerator.RssFeed será removido para promover content_type.app_name argument to django.conf.urls.include() will be
removed.include() será removido.Field._get_val_from_obj() será removido para promover Field.value_from_object().django.template.loaders.eggs.Loader será removido.current_app para views contrib.auth será removido.callable_obj para SimpleTestCase.assertRaisesMessage() será removido.allow_tags em métodos de ModelAdmin serão removidos.enclosure em SyndicationFeed.add_item() será removido.django.template.loader.LoaderOrigin e django.template.base.StringOrigin para django.template.base.Origin serão removidos.Veja a Django 1.10 release notes para mais detalhes sobre essas mudanças.
makemigrations --exit será removida.get_srid() e set_srid() em django.contrib.gis.geos.GEOSGeometry serão removidos.get_x(), set_x(), get_y(), set_y(), get_z(), e set_z() em django.contrib.gis.geos.Point serão removidos.get_coords() e set_coords() em django.contrib.gis.geos.Point serão removidos.cascaded_union em django.contrib.gis.geos.MultiPolygon serão removidos.django.utils.functional.allow_lazy() será removido.shell --plain será removido.django.core.urlresolvers será removido.CommaSeparatedIntegerField será removido. Um campo stub irá permanecer para compatibilidade com migrations passadas.Context.has_key() será removido.django.core.files.storage.Storage.accessed_time(), created_time(), e modified_time() serão removidos.Meta.default_related_name será removido.__search e o método DatabaseOperations.fulltext_search_sql() serão removidos._apply_rel_filters() será removido.User.is_authenticated() e User.is_anonymous() como métodos não será mais suportado.virtual_fields do Model._meta será removido.virtual_only no Field.contribute_to_class() e na virtual no Model._meta.add_field() será removido.javascript_catalog() e json_catalog() serão removidas.django.contrib.gis.utils.precision_wkt() será removida.OneToOneField para um parent_link será removida.Widget._format_value() será removido.get_directory_name() e get_filename() do FileField serão removidos.mark_for_escaping() e as classes que ela usa: EscapeData, EscapeBytes, EscapeText, EscapeString, e EscapeUnicode serão removidas.escape será alterado para que use o django.utils.html.conditional_escape().Manager.use_for_related_fields será removido.Manager seguirá regras de herança MRO e a Meta.manager_inheritance_from_future para escolher esse comportamento será removida.settings.MIDDLEWARE_CLASSES será removido.Veja as notas da release do Django 1.8 para mais detalhes sobre essas mudanças.
SQLCompiler diretamente como um alias para o seu método quote_name_unless_alias será removido.cycle and firstof serão removidas da biblioteca de tags de template future.django.conf.urls.patterns() será removido.prefix do django.conf.urls.i18n.i18n_patterns() será removido.SimpleTestCase.urls será removido.for irá lançar uma exceção ao invés de falhar silenciosamente.LOGIN_URL and LOGIN_REDIRECT_URL será removida.optparse será descartado para custom management commands (trocado pleo módulo argparse).django.core.management.NoArgsCommand será removida. Use em seu lugar a classe BaseCommand que não recebe argumentos por padrão.django.core.context_processors será removido.django.db.models.sql.aggregates será removido.django.contrib.gis.db.models.sql.aggregates será removido.django.db.sql.query.Query a seguir serão removidas:aggregates e aggregate_selectadd_aggregate, set_aggregate_mask, e append_aggregate_mask.django.template.resolve_variable será removido.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()error_message de django.forms.RegexField será removido.unordered_list não irá mais suportar listas do estilo antigo.view no formato string para url() será removido.django.forms.Form._has_changed() para has_changed() foi removido.removetags será removido.remove_tags() e strip_entities() em django.utils.html serão removidas.is_admin_site para django.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 no django-localflavor 1.1+.original_content_type_id em django.contrib.admin.helpers.InlineAdminForm será removido.FormMixin.get_form() ser definido sem valor padrão para o seu argumento form_class foi removido.ALLOWED_INCLUDE_ROOTSTEMPLATE_CONTEXT_PROCESSORSTEMPLATE_DEBUGTEMPLATE_DIRSTEMPLATE_LOADERSTEMPLATE_STRING_IF_INVALIDdjango.template.loader.BaseLoader será removido.get_template() e select_template() não irão mais aceitar um Context em seu método render().dict e objetos de template dependentes de backend ao invés de Context e Template respectivamente.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()dictionary e context_instance para as funções abaixo serão removidosdjango.shortcuts.render()django.shortcuts.render_to_response()django.template.loader.render_to_string()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()'django.contrib.auth.middleware.SessionAuthenticationMiddleware' estar ou não dentro de MIDDLEWARE_CLASSES.django.db.models.Field.related será removido.--list do comando migrate será removido.ssi será removida.= na tag de template if será removido.Storage.get_available_name() e Storage.save() ser definido sem um argumento max_length será removido.%(<foo>)s no ModelFormMixin.success_url será removido.GeoQuerySet de agregação collect(), extent(), extent3d(), make_line(), e unionagg() serão removidos.ContentType.name ao criar uma instância será removido.allow_migrate será removido. Ele mudou de allow_migrate(self, db, model) para allow_migrate(self, db, app_label, model_name=None, **hints).{% cycle %} que utiliza argumentos separados por vírgulas será removido.Signer emite quando é fornecido um separador inválido irá se tornar uma exceção.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.syncdb será removido.django.db.models.signals.pre_syncdb e django.db.models.signals.post_syncdb serão removidos.allow_syncdb em roteadores de bancos de dados não irão mais ficar automaticamente allow_migrate.--run-syncdb para o comando migrate.sqlall, sqlclear, sqldropindexes, and sqlindexes, será removido.initial_data e dados SQL iniciais serão removidos.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.IPAddressField serão removidos. Um campo stub irá permanecer para compatibilidade com migrations passadas.AppCommand.handle_app() não será mais suportado.RequestSite e get_current_site() não irão mais ser importáveis de django.contrib.sites.models.runfcgi será removido. Por favor faça deploy do seu projeto usando WSGI.django.utils.datastructures.SortedDict será removido. Utilize collections.OrderedDict da biblioteca padrão do Python.ModelAdmin.declared_fieldsets será removido.util.py no código base do Django foram renomeadas para utils.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.utildjango.contrib.gis.db.backends.utildjango.db.backends.utildjango.forms.utilModelAdmin.get_formsets será removido.BaseMemcachedCache._get_memcache_timeout() para get_backend_timeout() foi removido.-n para dumpdata serão removidas.use_natural_keys para serializers.serialize() será removido.django.forms.forms.get_declared_fields() será removida.SplitDateTimeWidget com DateTimeField será removido.WSGIRequest.REQUEST será removida.django.utils.datastructures.MergeDict será removida.zh-cn e zh-tw serão removidos e trocados pelos códigos de linguagem zh-hans e ``zh-hant``respectivamente.django.utils.functional.memoize será removido.django.core.cache.get_cache será removido. Ao invés dele, adicione as entradas convenientes a CACHES e use django.core.cache.caches.django.db.models.loading será removido.BaseCommand.requires_model_validation``será removido em favor de ``requires_system_checks. Admin validators serão trocados por admin checks.ModelAdmin.validator_class e default_validator_class serão removidos.ModelAdmin.validate() será removido.django.db.backends.DatabaseValidation.validate_field será removido em favor do método check_field.validate será removido.django.utils.module_loading.import_by_path será removido em favor de``django.utils.module_loading.import_string``.url serão removidas da biblioteca de tags de template future (usado durante o período de depreciação 1.3/1.4).django.utils.text.javascript_quote será removido.TEST_, não será mais suportado.ModelChoiceField e ModelMultipleChoiceField será removido.RedirectView.permanent atributo irá mudar de True para False.django.contrib.sitemaps.FlatPageSitemap será removido em favor de django.contrib.flatpages.sitemaps.FlatPageSitemap.django.test.utils.TestTemplateLoader será removida.django.contrib.contenttypes.generic será removido.django.db.models.sql.where.WhereNode.make_atom() e django.db.models.sql.where.Constraint serão removidos.Veja as notas de release Django 1.6 para mais detalhes sobre essas mudanças.
django.contrib.comments será removido.TransactionMiddleware,autocommit, commit_on_success, e commit_manually, definidos em django.db.transaction,commit_unless_managed e rollback_unless_managed, também definidos em django.db.transaction,TRANSACTIONS_MANAGED.cycle e firstof 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 template future.SEND_BROKEN_LINK_EMAILS setting will be removed. Add the
django.middleware.common.BrokenLinkEmailsMiddleware middleware to
your MIDDLEWARE_CLASSES setting instead.django.middleware.doc.XViewMiddleware será removido. Ao invés dele, use django.contrib.admindocs.middleware.XViewMiddleware.Model._meta.module_name foi renomeado para model_name.get_query_set e métodos do queryset similares. Isso afeta as seguintes classes: BaseModelAdmin, ChangeList, BaseCommentNode, GenericForeignKey, Manager, SingleRelatedObjectDescriptor e ReverseSingleRelatedObjectDescriptor.ChangeList.root_query_set e ChangeList.query_set.django.views.defaults.shortcut será removido, como parte do objetivo de remover todas as referências a django.contrib do núcleo do banco de dados do Django. Ao invés dele use django.contrib.contenttypes.views.shortcut. django.conf.urls.shortcut também será removido.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.RadioInput será removido em favor de django.forms.widgets.RadioChoiceInput.django.test.simple e a classe django.test.simple.DjangoTestSuiteRunner será removida. Utilize no lugar dele django.test.runner.DiscoverRunner.django.test._doctest será removido. Ao invés disso use o módulo doctest module da biblioteca padrão do Python.CACHE_MIDDLEWARE_ANONYMOUS_ONLY será removido.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.Model._meta.get_(add|change|delete)_permission será removida.django_language não será mais lida para compatibilidade com versões anteriores.django.contrib.gis.sitemaps.views.index e django.contrib.gis.sitemaps.views.sitemap).django.utils.html.fix_ampersands, o filtro de template fix_ampersands e django.utils.html.clean_html serão removidos seguindo uma depreciação acelerada.Veja as notas da release do Django 1.5 para mais detalhes sobre essas mudanças.
django.utils.simplejson será removido. A biblioteca padrão provê json que deve ser usado em seu lugar.django.utils.itercompat.product será removida. A versão embutida no Python deve ser usada em seu lugar.mimetype para métodos __init__ de HttpResponse, SimpleTemplateResponse, e TemplateResponse, será removido. content_type deve ser usado em seu lugar. Isso também se aplica ao atalho render_to_response() e as views de sitemap, index() e sitemap().HttpResponse é instanciado com um iterator, ou quando content é setado para um iterator, esse iterator será imediatamente consumido.AUTH_PROFILE_MODULE, e o método get_profile() do model User serão removidos.cleanup será removido. Ele foi trocado por clearsessions.daily_cleanup.py será removido.depth será removido de select_related().get_warnings_state()/restore_warnings_state() do django.test.utils e os métodos save_warnings_state()/ restore_warnings_state() django.test.*TestCase foram depreciados. Use o warnings.catch_warnings context manager disponível a partir do Python 2.6 em seu lugar.check_for_test_cookie na AuthenticationForm 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.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 de PASSWORD_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.django.utils.encoding.StrAndUnicode` será removido. Em seu lugar defina um método ``__str__ e aplique o decorator python_2_unicode_compatible().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.django.utils.copycompat e django.utils.hashcompat assim como as funções django.utils.itercompat.all e django.utils.itercompat.any serão removidos. Em seu lugar utiize as versões embutidas no Python.csrf_response_exempt e csrf_view_exempt serão removidos. Desde a versão 1.4 csrf_response_exempt tem sido um no-op (ele retorna a mesma função), e csrf_view_exempt tem sido um sinônimo para django.views.decorators.csrf.csrf_exempt, que deve ser usado para trocá-lo.django.core.cache.backends.memcached.CacheClass foi dividido em dois no Django 1.3 para introduzir o suporte a PyLibMC. O histórico CacheClass será removido em favor de django.core.cache.backends.memcached.MemcachedCache.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).IGNORABLE_404_STARTS e IGNORABLE_404_ENDS foram substituídos por IGNORABLE_404_URLS na release 1.4. Eles serão removidos.cache_page() será removida.'mail_admins' será removido. O setting LOGGING deve incluir esse filtro explicitamente se ele for desejado.django.utils.text.truncate_words() e django.utils.text.truncate_html_words() serão removidas em favor da classe django.utils.text.Truncator.django.contrib.gis.geoip.GeoIP foi movida para django.contrib.gis.geoip na 1.4 – o atalho em django.contrib.gis.utils será removido.django.conf.urls.defaults will be removed. The functions
include(), patterns(), and url(), plus
handler404 and handler500
are now available through django.conf.urls.setup_environ() e execute_manager() serão removidas do django.core.management. Isso também significa que o velho (pre-1.4) estilo do arquivo manage.py não irá mais funcionar.is_safe e needs_autoescape como atributos de funções de filtro de template não será mais suportado.HttpRequest.raw_post_data foi renomeado para HttpRequest.body na 1.4. A compatibilidade com versões anteriores será removida – HttpRequest.raw_post_data não irá mais funcionar.post_url_continue em ModelAdmin.response_add() terá que ser None (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.Veja as notas de release do Django 1.3 para mais detalhes sobre essas mudanças.
SECRET_KEY irá resultar em uma exceção ao invés de DeprecationWarning. (Isso foi acelerado do caminho usual de depreciação; veja as notas de release do Django 1.4.)mod_python será removido. O handler mod_wsgi deve ser usado em seu lugar.template em objetos django.test.client.Response retornados por test client será removido. O atributo templates deve ser usado em seu lugar.django.test.simple.DjangoTestRunner será removido. Ao invés dele use uma classe nativa de teste unitário. As funcionalidades de django.test.simple.DjangoTestRunner (incluindo fail-fast e terminação de test com Ctrl-C) podem ser fornecidas atualemente pela TextTestRunner.django.contrib.formtools.utils.security_hash será removida. Ao invés dela use django.contrib.formtools.utils.form_hmac.django.contrib.staticfiles.handlers.StaticFilesHandler.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.)url e ssi 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 tags future.reset e sqlreset serão removidos.supports_inactive_user não será mais verificado e pode ser removido de backends customizados.transform() irá lançar GEOSException quando chamado em uma geometria sem valor SRID.django.http.CompatCookie será removido em favor de django.http.SimpleCookie.django.core.context_processors.PermWrapper e django.core.context_processors.PermLookupDict serão removidos em favor dos correspondentes django.contrib.auth.context_processors.PermWrapper e django.contrib.auth.context_processors.PermLookupDict, respectivamente.MEDIA_URL ou STATIC_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.LOCALE_PATHS pode ser usado para a mesma tarefa quando incluido o caminho do sistema de arquivos para um diretório de locale contendo traduções não específicas de apps em seu valor.CACHE_BACKEND será removido. O backend (ou os backends) de cache deve ser especificado no setting CACHES.Veja as notas de release do Django 1.2 para mais detalhes sobre essas mudanças.
CsrfResponseMiddleware e CsrfMiddleware 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.django.contrib.csrf.*), que foi movido para o core em 1.2, será removido.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.DATABASE_* para definir conexões de banco de dados será removida.sqlite3 ao invés de django.db.backends.sqlite3) será removido.get_db_prep_save, get_db_prep_value e get_db_prep_lookup terão que suportar múltiplos bancos de dados.Message (em django.contrib.auth), o seu manager no model User (user.message_set), e os métodos associados (user.message_set.create() e user.get_and_delete_messages()), serão removidos. O framework messages deve ser usado em seu lugar. A variável messages 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.obj para verificação de permissões. O atributo supports_object_permissions não irá mais ser checado e pode ser removido dos backends customizados.AnonymousUser sendo passada para todos os métodos que lidam com permissão. A variável supports_anonymous_user não irá mais ser checada e pode ser removida dos backends customizados.Loader irá ser removido, assim como as funções load_template_source que estão incluídas com os template loaders embutidos para compatibilidade com versões anteriores.django.utils.translation.get_date_formats() e django.utils.translation.get_partial_date_formats(). Essas funções serão removidas; use o locale-aware django.utils.formats.get_format() para obter os formatos apropriados.django.forms.fields, as contantes: DEFAULT_DATE_INPUT_FORMATS, DEFAULT_TIME_INPUT_FORMATS e DEFAULT_DATETIME_INPUT_FORMATS serão removidas. Utilize django.utils.formats.get_format() para obter os formatos apropriados.django.test.simple.run_tests().views.feed() e a classe feeds.Feed em django.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 em django.contrib.auth.context_processors.auth.postgresql será removido, utilize o backend postgresql_psycopg2 em seu lugar.no será removida e foi trocada pela linguagem de código nb.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 simples TextField desde a remoção de oldforms. Todos os usos de XMLField podem ser substituídos com TextField.mixin para o método open() de django.core.files.storage.Storage (e subclasses) serão removidas.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 de admin.site.urls.supports_object_permissions e supports_anonymous_user até a versão 1.4, na qual será assumido que todos os backends suportam essas opções.ago 01, 2018