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.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(), e password_reset_complete() serão removidos.
  • The 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.
  • The host parameter of django.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 require request as the first positional argument.
  • The django.db.models.permalink() decorator will be removed.
  • The USE_ETAGS setting will be removed. CommonMiddleware and django.utils.cache.patch_response_headers() will no longer set ETags.
  • O atributo Model._meta.has_auto_field será removido.
  • Support for regular expression groups with iLmsu# in url() will be removed.
  • Suporte para Widget.render() métodos sem o argumento renderer será removido.

2.0

Veja as notas da release do Django 1.9 para mais detalhes sobre essas mudanças.

  • O argumento weak de django.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 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.
  • O atributo Field.remote_field.to será removido.
  • O argumento on_delete para ForeignKey e OneToOneField 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 e GeoQuerySet 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() e load_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 de django.utils.feedgenerator.Atom1Feed e django.utils.feedgenerator.RssFeed será removido para promover content_type.
  • O argumento app_name em include() 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 promover Field.value_from_object().
  • django.template.loaders.eggs.Loader será removido.
  • O parâmetro current_app para views contrib.auth será removido.
  • O argumento chave callable_obj para SimpleTestCase.assertRaisesMessage() será removido.
  • Suporte para o atributo allow_tags em métodos de ModelAdmin serão removidos.
  • O argumento chave enclosure em SyndicationFeed.add_item() será removido.
  • Os aliases de 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.

  • 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() e set_srid() em django.contrib.gis.geos.GEOSGeometry serão removidos.
  • Os métodos get_x(), set_x(), get_y(), set_y(), get_z(), e set_z() em django.contrib.gis.geos.Point serão removidos.
  • Os métodos get_coords() e set_coords() em django.contrib.gis.geos.Point serão removidos.
  • A propriedade cascaded_union em django.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(), e modified_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étodo DatabaseOperations.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() e User.is_anonymous() como métodos não será mais suportado.
  • O atributo privado virtual_fields do Model._meta será removido.
  • O argumento privado nomeado virtual_only no Field.contribute_to_class() e na virtual no Model._meta.add_field() será removido.
  • As “views” javascript_catalog() e json_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 um parent_link será removida.
  • O suporte para Widget._format_value() será removido.
  • Os métodos get_directory_name() e get_filename() do FileField serão removidos.
  • A função mark_for_escaping() e as classes que ela usa: EscapeData, EscapeBytes, EscapeText, EscapeString, e EscapeUnicode serão removidas.
  • O filtro escape será alterado para que use o django.utils.html.conditional_escape().
  • Manager.use_for_related_fields será removido.
  • A herança de um Manager seguirá regras de herança MRO e a Meta.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étodo quote_name_unless_alias será removido.
  • As tags de template cycle and firstof serão removidas da biblioteca de tags de template future.
  • django.conf.urls.patterns() será removido.
  • Suporte para o argumento prefix do django.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 and LOGIN_REDIRECT_URL será removida.
  • Suporte para o módulo optparse será descartado para custom management commands (trocado pleo módulo argparse).
  • A classe django.core.management.NoArgsCommand será removida. Use em seu lugar a classe BaseCommand 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 e aggregate_select
    • Métodos: add_aggregate, set_aggregate_mask, e append_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 de django.forms.RegexField será removido.
  • O filtro unordered_list não irá mais suportar listas do estilo antigo.
  • Suporte a argumentos view no formato string para url() será removido.
  • O calço de compatibilidade com versões anteriores para renomear django.forms.Form._has_changed() para has_changed() foi removido.
  • O filter de template removetags será removido.
  • As funções remove_tags() e strip_entities() em django.utils.html serão removidas.
  • O argumento 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+.
  • O atributo original_content_type_id em django.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 argumento form_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() e select_template() não irão mais aceitar um Context em seu método render().
  • APIs de resposta de templates irão reforçar o uso de dict e objetos de template dependentes de backend ao invés de Context e Template 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 e context_instance para as funções abaixo serão removidos
    • django.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 de MIDDLEWARE_CLASSES.
  • O atributo privado django.db.models.Field.related será removido.
  • A opção --list do comando migrate será removido.
  • A tag template ssi será removida.
  • Suporte para o operador de comparação = na tag de template if será removido.
  • O calço de compatibilidade com versões anteriores para permitir Storage.get_available_name() e Storage.save() ser definido sem um argumento max_length será removido.
  • Suporte para a sintaxe legada %(<foo>)s no ModelFormMixin.success_url será removido.
  • Os métodos do GeoQuerySet de agregação collect(), extent(), extent3d(), make_line(), e unionagg() 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 de allow_migrate(self, db, model) para allow_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 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.
  • 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 comando migrate.
  • Os SQL management commands para apps sem migrações, sql`, sqlall, sqlclear, sqldropindexes, and sqlindexes, 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 e get_current_site() não irão mais ser importáveis de django.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. Utilize collections.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 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.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() para get_backend_timeout() foi removido.
  • As opções``–natural`` e -n para dumpdata serão removidas.
  • O argumento use_natural_keys para serializers.serialize() será removido.
  • A API privada django.forms.forms.get_declared_fields() será removida.
  • A abilidade de utilizar o SplitDateTimeWidget com DateTimeField será removido.
  • A propriedade WSGIRequest.REQUEST será removida.
  • A classe django.utils.datastructures.MergeDict será removida.
  • Os códigos de linguagens zh-cn e zh-tw serão removidos e trocados pelos códigos de linguagem zh-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 a CACHES e use django.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 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.
  • 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 template future (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 e ModelMultipleChoiceField será removido.
  • O valor padrão do RedirectView.permanent atributo irá mudar de True para False.
  • django.contrib.sitemaps.FlatPageSitemap será removido em favor de django.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() e django.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, e commit_manually, definidos em django.db.transaction,
    • As funções commit_unless_managed e rollback_unless_managed, também definidos em django.db.transaction,
    • O setting TRANSACTIONS_MANAGED.
  • As tags de template 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.
  • O setting SEND_BROKEN_LINK_EMAILS será removido. Para substitui-lo, adicione o django.middleware.common.BrokenLinkEmailsMiddleware middleware MIDDLEWARE_CLASSES no seu setting.
  • 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.
  • 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 e ReverseSingleRelatedObjectDescriptor.
  • Remove o calço de compatibilidade com versões anteriores introduzido para renomear os atributos 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.
  • 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 de django.forms.widgets.RadioChoiceInput.
  • O módulo django.test.simple e a classe django.test.simple.DjangoTestSuiteRunner será removida. Utilize no lugar dele django.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 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.

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__ 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().
  • Quando HttpResponse é instanciado com um iterator, ou quando content é setado para um iterator, esse iterator será imediatamente consumido.
  • O setting AUTH_PROFILE_MODULE, e o método get_profile() do model User serão removidos.
  • O comando de gerenciamento cleanup será removido. Ele foi trocado por clearsessions.
  • O script daily_cleanup.py será removido.
  • O argumento chave depth será removido de select_related().
  • As funções não documentadas 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.
  • O método não documentado 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.
  • 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 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.
  • O mix-in django.utils.encoding.StrAndUnicode` será removido. Em seu lugar defina um método ``__str__ e aplique o decorator python_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 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.
  • Os decorators 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.
  • O backend 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.
  • 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 e IGNORABLE_404_ENDS foram substituídos por IGNORABLE_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 setting LOGGING deve incluir esse filtro explicitamente se ele for desejado.
  • As funções embutidas de truncamento django.utils.text.truncate_words() e django.utils.text.truncate_html_words() serão removidas em favor da classe django.utils.text.Truncator.
  • A classe 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 será removida. A função include(), patterns() e url() além de handler404, handler500, agora estão disponíveis através de django.conf.urls .
  • As funções 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.
  • Ativar as flags is_safe e needs_autoescape como atributos de funções de filtro de template não será mais suportado.
  • O atributo 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.
  • O valor para o parâmetro 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.

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 de DeprecationWarning. (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 handler mod_wsgi deve ser usado em seu lugar.
  • O atributo de template em objetos django.test.client.Response retornados por test client será removido. O atributo templates 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 de django.test.simple.DjangoTestRunner (incluindo fail-fast e terminação de test com Ctrl-C) podem ser fornecidas atualemente pela TextTestRunner.
  • A função não documentada django.contrib.formtools.utils.security_hash será removida. Ao invés dela use django.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 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.
  • Os comandos de administração reset e sqlreset 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ç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.
  • Os settings 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.
  • 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 de locale 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 setting CACHES.

1.4

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.
  • 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 de django.db.backends.sqlite3) será removido.
  • Os métodos get_db_prep_save, get_db_prep_value e get_db_prep_lookup terão que suportar múltiplos bancos de dados.
  • O model 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.
  • Backends de autenticação terão que suportar o parâmetro 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.
  • Backends de autenticação terá que suportar a classe 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.
  • A habilidade para especificar um template loader invocável ao invés de uma classe 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.
  • Em 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.
  • 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 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.
  • O backend do banco de dados postgresql será removido, utilize o backend postgresql_psycopg2 em seu lugar.
  • A linguagem de código no será removida e foi trocada pela linguagem de código nb.
  • 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 simples TextField desde a remoção de oldforms. Todos os usos de XMLField podem ser substituídos com TextField.
  • O parâmetro não documentado mixin para o método open() de django.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 de admin.site.urls.
  • Backends de autenticação precisam definir os atributos booleanos 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.
Back to Top