장고 폐기 일정

이 문서는 :ref:`deprecation policy <internal-release-deprecation-policy>`에 따라 Django의 다양한 구성 요소가 사용 중단 이후 제거되거나 하위 호환되지 않는 방식으로 변경되는 시기를 설명합니다. 각 항목에 대한 자세한 내용은 보통 두 버전 이전의 릴리스 노트에서 확인할 수 있습니다.

7.0

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 6.0 릴리스 노트 <deprecated-features-6.0>`를 참조하세요.

  • BaseDatabaseCreation.create_test_db()``에 대한 ``serialize 키워드 인수가 제거됩니다.

  • django.contrib.postgres.aggregates.StringAgg 클래스가 제거됩니다.

  • django.contrib.postgres.aggregates.mixins.OrderableAggMixin 클래스가 제거됩니다.

  • urlizeurlizetrunc 템플릿 필터의 기본 프로토콜이 HTTP에서 HTTPS로 변경됩니다.

  • URLIZE_ASSUME_HTTPS 전환 설정이 제거됩니다.

  • 컬럼 별칭이나 어노테이션에 퍼센트 기호를 사용하면 ``ValueError``가 발생합니다.

  • ADMINS 또는 MANAGERS 설정을 (name, address) 튜플 목록으로 설정하는 지원이 제거됩니다.

  • django.core.paginator.Paginatordjango.core.paginator.AsyncPaginator``에서 ``orphans 인수가 per_page 인수보다 크거나 같은 경우는 더 이상 허용되지 않습니다.

  • django.core.mail API는 API는 더 이상 특정 파라미터를 위치 인수로 허용하지 않습니다. 대신 키워드 인수로 전달해야 합니다.

  • Python의 레거시 이메일 email.mime.base.MIMEBase 객체를 EmailMessage.attach()``에 전달하거나, 메시지의 ``attachments 목록에 포함하는 것에 대한 지원이 제거됩니다.

  • django.core.mail.BadHeaderError 예외가 제거됩니다.

  • django.core.mail.SafeMIMETextSafeMIMEMultipart 클래스가 제거됩니다.

  • django.core.mail.forbid_multi_line_headers()django.core.mail.message.sanitize_address() 함수가 제거됩니다.

See the Django 6.1 release notes for more details on these changes.

  • Calling QuerySet.values_list() with flat=True and no field name will raise TypeError.

  • The use of None when querying a JSONField top-level value will compile to SQL IS NULL. Use JSONNull to query for a JSON null value instead.

  • The django.db.models.fields.BLANK_CHOICE_DASH constant will be removed.

  • The USE_BLANK_CHOICE_DASH transitional setting will be removed.

  • The SIGNED_COOKIE_LEGACY_SALT_FALLBACK transitional setting will be removed.

  • The Field.get_placeholder_sql shim over the deprecated get_placeholder method will be removed.

  • The SQLCompiler.quote_name_unless_alias() method will be removed.

  • The EMAIL_BACKEND, EMAIL_FILE_PATH, EMAIL_HOST, EMAIL_HOST_PASSWORD, EMAIL_HOST_USER, EMAIL_PORT, EMAIL_USE_TLS, EMAIL_USE_SSL, EMAIL_SSL_CERTFILE, EMAIL_SSL_KEYFILE, and EMAIL_TIMEOUT settings will be removed.

  • The django.core.mail.get_connection() function will be removed.

  • The connection, fail_silently, auth_user, and auth_password arguments will be removed from send_mail(), send_mass_mail(), mail_admins(), mail_managers(), the EmailMessage constructor, and EmailMessage.send(). Support for the EmailMessage.connection attribute will also be removed.

  • Directly creating instances of the smtp.EmailBackend class will become unsupported, and the class documentation for that backend will be removed.

  • The BaseEmailBackend.__init__() method will raise errors for unknown keyword arguments and will remove support for fail_silently.

  • The email_backend argument of log.AdminEmailHandler will be removed.

  • The django.contrib.postgres.aggregates.BitAnd, django.contrib.postgres.aggregates.BitOr, and django.contrib.postgres.aggregates.BitXor classes will be removed.

  • Support for double-dot variable lookup, like {{ book..title }}, is removed.

  • The default value of the algorithm argument for django.utils.crypto.salted_hmac() and django.core.signing.base64_hmac() will change from "sha1" to "sha256".

  • Calling QuerySet.select_related() without arguments will raise TypeError.

  • QuerySet.select_related() will raise TypeError if passed True rather than AttributeError.

  • ModelAdmin will raise ValueError if subclassed with its list_select_related attribute set to True.

  • ModelAdmin will raise ValueError if its get_list_select_related() method returns True.

  • Support for overriding ModelAdmin.get_actions() without the new action_location parameter will be removed.

  • Support for unpacking or indexing the dictionary values of the ModelAdmin.get_actions() return value will be removed. Use Action attributes instead.

  • Support for overriding ModelAdmin.get_action_choices() without the new action_location parameter will be removed.

  • The django.db.transaction.savepoint() alias to django.db.transaction.savepoint_create() will be removed.

6.1

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 5.2 릴리스 노트 <deprecated-features-5.2>`를 참조하세요.

  • django.contrib.staticfiles.finders.find()``에 대한 ``all 키워드 인수가 제거됩니다.

  • django.contrib.auth.login()``django.contrib.auth.alogin()``에서 ``user``가 ``None``일 때 각각 ``request.user``와 ``request.auser()``로 대체되는 동작이 제거됩니다.

  • PostgreSQL 전용 집계 함수인 django.contrib.postgres.aggregates.ArrayAgg, django.contrib.postgres.aggregates.JSONBAgg, django.contrib.postgres.aggregates.StringAgg``의 ``ordering 키워드 인수가 제거됩니다.

  • ``RemoteUserMiddleware``를 상속한 클래스 중에서 ``process_request()``는 재정의하고 ``aprocess_request()``는 재정의하지 않은 경우, 지원이 제거됩니다.

6.0

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 5.0 릴리스 노트 <deprecated-features-5.0>`를 참조하세요.

  • DjangoDivFormRendererJinja2DivFormRenderer 전환용 폼 렌더러가 제거됩니다.

  • ``BaseConstraint``에 위치 인수를 전달하는 지원이 제거됩니다.

  • request``는 ``ModelAdmin.lookup_allowed() 하위 클래스의 서명에 필요합니다.

  • ``django.db.models.sql.datastructures.Join``은 더 이상 ``get_joining_columns()``로 대체되지 않습니다.

  • ForeignObjectForeignObjectRel``의 ``get_joining_columns() 메서드가 제거됩니다.

  • ForeignObject.get_reverse_joining_columns() 메서드가 제거됩니다.

  • ``forms.URLField``의 기본 스킴이 ``”http”``에서 ``”https”``로 변경됩니다.

  • 인수나 키워드 인수를 전달하지 않고 ``format_html()``을 호출하는 지원이 제거됩니다.

  • ``cx_Oracle``에 대한 지원이 제거됩니다.

  • ``BaseDatabaseOperations.field_cast_sql()``이 제거됩니다.

  • django.db.models.enums.ChoicesType``의 ``ChoicesMeta 별칭이 제거됩니다.

  • Prefetch.get_current_queryset() 메서드가 제거됩니다.

  • 관련 매니저와 디스크립터의 get_prefetch_queryset() 메서드가 제거됩니다.

  • get_prefetcher()``prefetch_related_objects()``는 더 이상 ``get_prefetch_queryset()``로 대체되지 않습니다.

  • FORMS_URLFIELD_ASSUME_HTTPS 전환 설정이 제거됩니다.

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 5.1 릴리스 노트 <deprecated-features-5.1>`를 참조하세요.

  • ModelAdmin.log_deletion()LogEntryManager.log_action() 메서드가 제거됩니다.

  • 문서화되지 않은 django.utils.itercompat.is_iterable() 함수와 django.utils.itercompat 모듈이 제거됩니다.

  • django.contrib.gis.geoip2.GeoIP2.coords() 메서드가 제거됩니다.

  • django.contrib.gis.geoip2.GeoIP2.open() 메서드가 제거됩니다.

  • Model.save()``Model.asave()``에 위치 인수를 전달하는 지원이 제거됩니다.

  • ``django.contrib.gis.gdal.OGRGeometry.coord_dim``의 setter가 제거됩니다.

  • ``django.urls.register_converter()``는 더 이상 기존 변환기를 재정의하는 것이 허용되지 않습니다.

  • CheckConstraint``에 대한 ``check 키워드 인수가 제거됩니다.

  • FileSystemStorage`의 ``OS_OPEN_FLAGS` 속성이 제거됩니다.

  • FieldCacheMixin``의 ``get_cache_name() 메서드가 제거됩니다.

5.1

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 4.2 릴리스 노트 <deprecated-features-4.2>`를 참조하세요.

  • BaseUserManager.make_random_password() 메서드가 제거됩니다.

  • 모델의 Meta.index_together 옵션이 제거됩니다.

  • length_is 템플릿 필터가 제거됩니다.

  • django.contrib.auth.hashers.SHA1PasswordHasher, django.contrib.auth.hashers.UnsaltedSHA1PasswordHasher``django.contrib.auth.hashers.UnsaltedMD5PasswordHasher``가 제거됩니다.

  • django.contrib.postgres.fields.CICharField, django.contrib.postgres.fields.CIEmailField, django.contrib.postgres.fields.CITextField 모델이 제거됩니다. 과거 마이그레이션 호환성을 위해 stub 필드는 유지됩니다.

  • django.contrib.postgres.fields.CIText mixin이 제거됩니다.

  • BaseGeometryWidget``의 ``map_widthmap_height 속성이 제거됩니다.

  • SimpleTestCase.assertFormsetError() 메서드가 제거됩니다.

  • TransactionTestCase.assertQuerysetEqual() 메서드가 제거됩니다.

  • 인코딩된 JSON 문자열 리터럴을 ``JSONField``와 관련 조회 및 표현식에 전달하는 지원이 제거됩니다.

  • Signer``TimestampSigner``에 위치 인수를 전달하는 지원이 제거됩니다.

  • DEFAULT_FILE_STORAGESTATICFILES_STORAGE 설정이 제거됩니다.

  • django.core.files.storage.get_storage_class() 함수가 제거됩니다.

5.0

이러한 변경사항에 대한 자세한 내용은 :ref::`Django 4.0 release notes <deprecedated-features-4.0>’을 참조하십시오.

  • “SERIALIZE” 테스트 설정이 제거됩니다.

  • 문서화되지 않은 “django.utils.baseconv” 모듈이 제거됩니다.

  • 문서화되지 않은 “django.utils.datetime_safe” 모듈이 제거됩니다.

  • “USE_TZ” 설정의 기본값은 “False”에서 “True”로 변경됩니다.

  • 요청 컨텍스트 외부에 구축된 사이트 맵의 기본 사이트 맵 프로토콜이 “‘http”에서 “https”로 변경됩니다.

  • DiscoverRunner.build_suite()``DiscoverRunner.run_tests()``에 대한 ``extra_tests``인수가 제거됩니다.

  • django.contrib.postgres.aggregates.ArrayAgg, JSONBAgg, StringAgg 집계는 행이 없는 경우 각각 [], [], '' 대신 ``None``을 반환합니다.

  • USE_L10N 설정이 제거됩니다.

  • USE_DEPRECATED_PYTZ 전환 설정이 제거됩니다.

  • pytz 시간대 지원이 제거됩니다.

  • is_dst 인수는 다음에서 제거됩니다:

    • QuerySet.datetimes()

    • django.utils.timezone.make_aware()

    • django.db.models.functions.Trunc()

    • django.db.models.functions.TruncSecond()

    • django.db.models.functions.TruncMinute()

    • django.db.models.functions.TruncHour()`

    • django.db.models.functions.TruncDay()

    • django.db.models.functions.TruncWeek()

    • django.db.models.functions.TruncMonth()

    • django.db.models.functions.TruncQuarter()

    • django.db.models.functions.TruncYear()

  • django.contrib.gis.admin.GeoModelAdminOSMGeoAdmin 클래스가 제거됩니다.

  • 문서화되지 않은 BaseForm._html_output() 메서드는 제거됩니다.

  • ErrorDict``ErrorList``를 렌더링할 때 ``SafeString``이 아닌 ``str``을 반환하는 기능이 제거됩니다.

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 4.1 릴리스 노트 <deprecated-features-4.1>`를 참조하세요.

  • SitemapIndexItem.__str__() 메서드가 제거됩니다.

  • CSRF_COOKIE_MASKED 전환 설정이 제거됩니다.

  • django.utils.functional.cached_property()``의 ``name 인수가 제거됩니다.

  • django.contrib.postgres.constraints.ExclusionConstraint``의 ``opclasses 인수가 제거됩니다.

  • errors=None``을 ``SimpleTestCase.assertFormError()``assertFormsetError()``에 전달하는 문서화되지 않은 기능이 제거됩니다.

  • ``django.contrib.sessions.serializers.PickleSerializer``가 제거됩니다.

  • chunk_size 인수를 제공하지 않고 관련 객체를 미리 가져오는 쿼리셋에서 QuerySet.iterator() 사용이 더 이상 허용되지 않습니다.

  • 저장되지 않은 모델 인스턴스를 관련 필터에 전달하는 것은 더 이상 허용되지 않습니다.

  • created=True``는 ``RemoteUserBackend.configure_user() 하위 클래스의 서명에 필요합니다.

  • django.contrib.auth.views.LogoutView 및``django.contrib.auth.views.logout_then_login()``에서 GET 요청을 총한 로그아웃 지원이 제거됩니다.

  • django.utils.timezone.utc 별칭에서 ``datetime.timezone.utc``가 제거됩니다.

  • SimpleTestCase.assertFormError()``assertFormsetError()``에 응답 객체 및 폼/폼셋 이름을 전달하는 것이 더 이상 허용되지 않습니다.

  • ``django.contrib.gis.admin.OpenLayersWidget``이 제거됩니다.

  • ``django.contrib.auth.hashers.CryptPasswordHasher``가 제거됩니다.

  • "django/forms/default.html""django/forms/formsets/default.html" 템플릿이 제거됩니다.

  • nulls_first=False 또는 nulls_last=False``를 ``Expression.asc()Expression.desc() 메서드에 전달하는 기능과 OrderBy 표현식은 제거됩니다.

4.1

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 3.2 릴리스 노트 <deprecated-features-3.2>`를 참조하세요.

  • ``TestCase.setUpTestData()``의 클래스 속성에 ``copy.deepcopy()``를 사용하여 깊은 복사 생성을 지원하지 않는 개체 할당에 대한 지원이 제거됩니다.

  • ``BaseCommand.requires_system_checks``는 부울 값을 지원하지 않습니다.

  • ``django.core.validators.EmailValidator``의 ``whitelist``인수 및 ``domain_whitelist``속성이 제거됩니다.

  • default_app_config 모듈 변수가 제거됩니다.

  • ``TransactionTestCase.assertQuerysetEqual()``은 문자열 값과 비교할 때 더 이상 쿼리 세트에서 ``repr()``을 자동으로 호출하지 않습니다.

  • ``django.core.cache.backends.memcached.MemcachedCache``가 제거됩니다.

  • ``django.conrib.messages.storage.cookie.CookieStorage``에서 사용하는 Django 3.2 이전 형식의 메시지에 대한 지원이 제거됩니다.

4.0

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 3.0 릴리스 노트 <deprecated-features-3.0>`을 참조하세요

  • django.utils.http.urlquote(), urlquote_plus(), urlunquote()``urlunquote_plus()``가 제거됩니다.

  • django.utils.encoding.force_text()``smart_text()``가 제거됩니다.

  • django.utils.translation.ugettext(), ugettext_lazy(), ugettext_noop(), ungettext()``ungettext_lazy()``가 제거됩니다.

  • django.views.i18n.set_language()``는 이상 ``request.session``(키 ``django.utils.translation.LANGUAGE_SESSION_KEY)에서 사용자 언어를 설정하지 않습니다.

  • alias=None``은 ``django.db.models.Expression.get_group_by_cols() 하위 클래스의 서명에 필요합니다.

  • ``django.utils.text.unescape_entities()``가 제거됩니다.

  • ``django.utils.http.is_safe_url()``가 제거됩니다.

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 3.1 릴리스 노트 <deprecated-features-3.1>`를 참조하십시오.

  • PASSWORD_RESET_TIMEOUT_DAYS 설정이 제거됩니다.

  • 부울이 아닌 값을 우변으로 사용하는 isnull 조회의 문서화되지 않은 사용은 더 이상 허용되지 않습니다.

  • django.db.models.query_utils.InvalidQuery 예외 클래스가 제거됩니다.

  • django-admin.py 진입점이 제거됩니다.

  • HttpRequest.is_ajax() 메서드가 제거됩니다.

  • ``django.contrib.messages.storage.cookie.CookieStorage``에서 사용하는 쿠키 값의 Django 3.1 이전 인코딩 형식에 대한 지원이 제거됩니다.

  • 관리 사이트(SHA-1 해싱 알고리즘 사용)에서 Django 3.1 이전 암호 재설정 토큰에 대한 지원이 제거됩니다.

  • 세션의 Django 3.1 이전 인코딩 형식에 대한 지원이 제거됩니다.

  • Django 3.1 이전 django.core.signing.Signer 서명(SHA-1 알고리즘으로 인코딩됨)에 대한 지원이 제거됩니다.

  • django.core.signing.loads()``에서 Django 3.1 이전 ``django.core.signing.dumps() 서명(SHA-1 알고리즘으로 인코딩됨)에 대한 지원이 제거됩니다.

  • Django 3.1 이전 사용자 세션(SHA-1 알고리즘 사용)에 대한 지원이 제거됩니다.

  • django.utils.deprecation.MiddlewareMixin.__init__()``에 대한 ``get_response 인수가 필요하며 ``None``을 허용하지 않습니다.

  • django.dispatch.Signal``에 대한 ``providing_args 인수가 제거됩니다.

  • django.utils.crypto.get_random_string()``에 대한 ``length 인수가 필요합니다.

  • ModelMultipleChoiceField``에 대한 ``list 메시지가 제거됩니다.

  • 원시 열 별칭을 ``QuerySet.order_by()``에 전달하는 지원이 제거됩니다.

  • NullBooleanField 모델이 제거됩니다. 이전 마이그레이션과의 호환성을 위해 스텁 필드가 유지됩니다.

  • ``django.conf.urls.url()``이 제거됩니다.

  • django.contrib.postgres.fields.JSONField 모델이 제거됩니다. 이전 마이그레이션과의 호환성을 위해 스텁 필드가 유지됩니다.

  • django.contrib.postgres.forms.JSONField, django.contrib.postgres.fields.jsonb.KeyTransform``django.contrib.postgres.fields.jsonb.KeyTextTransform``이 제거됩니다.

  • {% ifequal %}{% ifnotequal %} 템플릿 태그가 제거됩니다.

  • DEFAULT_HASHING_ALGORITHM 전환 설정이 제거됩니다.

3.1

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 2.2 릴리스 노트 <deprecated-features-2.2>`를 참조하세요.

  • ``django.utils.timezone.FixedOffset``이 제거됩니다.

  • ``django.core.paginator.QuerySetPaginator``가 제거됩니다.

  • 모델의 Meta.ordering``은 이상 ``GROUP BY 쿼리에 영향을 미치지 않습니다.

  • django.contrib.postgres.fields.FloatRangeField``django.contrib.postgres.forms.FloatRangeField``가 제거됩니다.

  • FILE_CHARSET 설정이 제거됩니다.

  • ``django.contrib.staticfiles.storage.CachedStaticFilesStorage``가 제거됩니다.

  • ``RemoteUserBackend.configure_user()``는 첫 번째 인수로 ``request``를 요구합니다.

  • SimpleTestCase.allow_database_queriesTransactionTestCase.multi_db 지원이 제거됩니다.

3.0

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 2.0 릴리스 노트<deprecated-features-2.0>`를 참조하십시오.

  • django.db.backends.postgresql_psycopg2 모듈이 제거됩니다.

  • ``django.shortcuts.render_to_response()``가 제거됩니다.

  • DEFAULT_CONTENT_TYPE 설정이 제거됩니다.

  • ``HttpRequest.xreadlines()``가 제거됩니다.

  • Field.from_db_value()Expression.convert_value()``의 ``context 인수에 대한 지원이 제거됩니다.

  • QuerySet.earliest()latest()``의 ``field_name 키워드 인수가 제거됩니다.

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 2.1 릴리스 노트 <deprecated-features-2.1>`를 참조하십시오.

  • ``django.contrib.gis.db.models.functions.ForceRHR``이 제거됩니다.

  • ``django.utils.http.cookie_date()``가 제거됩니다.

  • staticfilesadmin_static 템플릿 태그 라이브러리가 제거됩니다.

  • ``django.contrib.staticfiles.templatetags.static()``이 제거됩니다.

  • InlineModelAdmin.has_add_permission()``을 ``obj 인수 없이 정의할 수 있도록 하는 심이 제거됩니다.

2.1

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.11 릴리스 노트<deprecated-features-1.11>`를 참조하십시오.

  • contrib.auth.views.login(), logout(), password_change(), password_change_done(), password_reset(), password_reset_done( ), password_reset_confirm()``password_reset_complete()``가 제거됩니다.

  • contrib.auth.views.logout_then_login()``의 ``extra_context 매개변수가 제거됩니다.

  • ``django.test.runner.setup_databases()``가 제거됩니다.

  • ``django.utils.translation.string_concat()``이 제거됩니다.

  • django.core.cache.backends.memcached.PyLibMCCache``는 이상 ``pylibmc 동작 설정을 ``OPTIONS``의 최상위 속성으로 전달하는 것을 지원하지 않습니다.

  • django.utils.http.is_safe_url()``의 ``host 매개변수가 제거됩니다.

  • {% include %} 템플렛 태그를 렌더링하는 동안 발생한 예외 무시가 제거됩니다.

  • ``DatabaseIntrospection.get_indexes()``가 제거됩니다.

  • 인증 백엔드의 authenticate() 메서드는 첫 번째 인수로 ``request``를 요구합니다.

  • django.db.models.permalink() 데코레이터가 제거됩니다.

  • USE_ETAGS 설정이 제거됩니다. CommonMiddleware``django.utils.cache.patch_response_headers()``는 더 이상 ETag를 설정하지 않습니다.

  • Model._meta.has_auto_field 속성이 제거됩니다.

  • 정규표현식 그룹((?i), (?L), (?m), (?s), and (?u)) 의 인라인 플래그에 대한 ``url()``의 지원이 제거됩니다.

  • renderer 인수가 없는 Widget.render() 메서드에 대한 지원이 제거됩니다.

2.0

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.9 릴리스 노트<deprecated-features-1.9>`를 참조하세요.

  • django.dispatch.signals.Signal.disconnect()``에 대한 ``weak 인수가 제거됩니다.

  • ``django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()``가 제거됩니다.

  • django.forms.extras 패키지가 제거됩니다.

  • assignment_tag 도우미가 제거됩니다.

  • assertsRedirects``에 대한 ``host 인수가 제거됩니다. 경로가 동일한 경우 절대 URL을 상대 URL과 동일하게 간주할 수 있는 호환성 계층도 제거됩니다.

  • ``Field.rel``이 제거됩니다.

  • Field.remote_field.to 속성이 제거됩니다.

  • ForeignKeyOneToOneField``에 대한 ``on_delete 인수가 필요합니다.

  • ``django.db.models.fields.add_lazy_relation()``이 제거됩니다.

  • 시간대 지원이 활성화되면 시간대를 지원하지 않는 데이터베이스 백엔드는 이러한 값이 ORM 외부에서 실행되는 SQL 쿼리(``cursor.execute()``를 사용하는)에 매개변수로 전달될 때 더 이상 인식 날짜 시간을 UTC의 순진한 값으로 변환하지 않습니다.

  • django.contrib.auth.tests.utils.skipIfCustomUser() 데코레이터가 제거됩니다.

  • GeoManagerGeoQuerySet 클래스가 제거됩니다.

  • django.contrib.gis.geoip 모듈이 제거됩니다.

  • 템플릿 로더에 대한 supports_recursion 검사가 다음에서 제거됩니다.

    • 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()load_template_sources() 템플릿 로더 메서드는 제거됩니다.

  • 템플릿 로더에 대한 template_dirs 인수가 제거됩니다:

    • 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__() 메서드가 제거됩니다.

  • 단일 위치 매개변수가 있는 사용자 지정 오류 보기에 대한 지원이 중단됩니다.

  • django.utils.feedgenerator.Atom1Feeddjango.utils.feedgenerator.RssFeed``의 ``mime_type 속성은 ``content_type``을 위해 제거됩니다.

  • django.conf.urls.include()``에 대한 ``app_name 인수가 제거됩니다.

  • ``include()``에 대한 첫 번째 인수로 3-튜플을 전달하는 지원이 제거됩니다.

  • 애플리케이션 네임스페이스 없이 URL 인스턴스 네임스페이스를 설정하는 지원이 제거됩니다.

  • ``Field._get_val_from_obj()``는 ``Field.value_from_object()``를 위해 제거됩니다.

  • ``django.template.loaders.eggs.Loader``가 제거됩니다.

  • contrib.auth 보기에 대한 current_app 매개변수가 제거됩니다.

  • SimpleTestCase.assertRaisesMessage()``에 대한 ``callable_obj 키워드 인수가 제거됩니다.

  • ModelAdmin 메서드의 allow_tags 속성에 대한 지원이 제거됩니다.

  • SyndicationFeed.add_item()``에 대한 ``enclosure 키워드 인수가 제거됩니다.

  • django.template.base.Origin``의 ``django.template.loader.LoaderOrigindjango.template.base.StringOrigin 별칭이 제거됩니다.

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.10 릴리스 노트 <deprecated-features-1.10>`를 참조하세요.

  • makemigrations --exit 옵션이 제거됩니다.

  • 역방향 외래 키 또는 다대다 관계에 대한 직접 할당 지원이 제거됩니다.

  • django.contrib.gis.geos.GEOSGeometry``의 ``get_srid()set_srid() 메소드가 제거됩니다.

  • django.contrib.gis.geos.Point``의 ``get_x(), set_x(), get_y(), set_y(), get_z()set_z() 메서드가 제거됩니다.

  • django.contrib.gis.geos.Point``의 ``get_coords()set_coords() 메서드가 제거됩니다.

  • django.contrib.gis.geos.MultiPolygon``의 ``cascaded_union 속성이 제거됩니다.

  • ``django.utils.functional.allow_lazy()``가 제거됩니다.

  • shell --plain 옵션이 제거됩니다.

  • django.core.urlresolvers 모듈이 제거됩니다.

  • CommaSeparatedIntegerField 모델이 제거됩니다. 이전 마이그레이션과의 호환성을 위해 스텁 필드가 유지됩니다.

  • 템플릿 Context.has_key() 메서드에 대한 지원이 제거됩니다.

  • django.core.files.storage.Storage.accessed_time(), created_time()modified_time() 메서드에 대한 지원이 제거됩니다.

  • ``Meta.default_related_name``이 설정된 경우 모델 이름을 사용한 쿼리 조회 지원이 제거됩니다.

  • __search 쿼리 조회 및 DatabaseOperations.fulltext_search_sql() 메서드가 제거됩니다.

  • _apply_rel_filters() 메서드 없이 사용자 지정 관련 관리자 클래스를 지원하기 위한 shim이 제거됩니다.

  • User.is_authenticated()``User.is_anonymous()``를 메소드로 사용하는 것은 더 이상 지원되지 않습니다.

  • ``Model._meta``의 비공개 속성 ``virtual_fields``가 제거됩니다.

  • Field.contribute_to_class()``의 ``virtual_onlyModel._meta.add_field()``의 ``virtual 비공개 키워드 인수가 제거됩니다.

  • javascript_catalog()json_catalog() 보기가 제거됩니다.

  • django.contrib.gis.utils.precision_wkt() 함수가 제거됩니다.

  • 다중 테이블 상속에서 ``OneToOneField``에서 ``parent_link``로의 암시적 확장이 제거됩니다.

  • ``Widget._format_value()``에 대한 지원이 제거됩니다.

  • FileField 메서드 get_directory_name()``get_filename()``이 제거됩니다.

  • mark_for_escaping() 함수와 EscapeData, EscapeBytes, EscapeText, EscapeStringEscapeUnicode 클래스가 제거됩니다.

  • escape 필터는 ``django.utils.html.conditional_escape()``를 사용하도록 변경됩니다.

  • ``Manager.use_for_related_fields``가 제거됩니다.

  • 모델 Manager 상속은 MRO 상속 규칙을 따르며 이 동작을 선택하는 ``Meta.manager_inheritance_from_future``는 제거됩니다.

  • ``settings.MIDDLEWARE_CLASSES``를 사용하는 구식 미들웨어에 대한 지원이 제거됩니다.

1.10

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.8 릴리스 노트<deprecated-features-1.8>`를 참조하십시오.

  • quote_name_unless_alias 메서드를 호출하기 위한 별칭으로 ``SQLCompiler``를 직접 호출하는 지원이 제거됩니다.

  • cyclefirstof 템플릿 태그는 future 템플릿 태그 라이브러리에서 제거됩니다(1.6/1.7 지원 중단 기간 동안 사용됨).

  • ``django.conf.urls.patterns()``가 제거됩니다.

  • django.conf.urls.i18n.i18n_patterns()``에 대한 ``prefix 인수 지원이 제거됩니다.

  • ``SimpleTestCase.urls``가 제거됩니다.

  • for 템플릿 태그에서 압축 해제된 값의 잘못된 개수를 사용하면 조용히 실패하지 않고 예외가 발생합니다.

  • 점으로 구분된 Python 경로를 사용하여 URL을 뒤집는 기능이 제거됩니다.

  • LOGIN_URLLOGIN_REDIRECT_URL 설정에 점으로 구분된 Python 경로를 사용하는 기능이 제거됩니다.

  • 사용자 지정 관리 명령에 대한 optparse 지원이 중단됩니다(:mod:`argparse`로 대체됩니다).

  • django.core.management.NoArgsCommand 클래스가 제거됩니다. 기본적으로 인수를 사용하지 않는 클래스:`~django.core.management.BaseCommand`를 대신 사용하십시오.

  • django.core.context_processors 모듈이 제거됩니다.

  • django.db.models.sql.aggregates 모듈이 제거됩니다.

  • django.contrib.gis.db.models.sql.aggregates 모듈이 제거됩니다.

  • ``django.db.sql.query.Query``의 다음 메서드 및 속성이 제거됩니다.

    • 속성: aggregatesaggregate_select

    • 메소드: add_aggregate, set_aggregate_maskappend_aggregate_mask

  • ``django.template.resolve_variable``이 제거됩니다.

  • 다음 비공개 API는 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()

  • django.forms.RegexField``의 ``error_message 인수가 제거됩니다.

  • unordered_list 필터는 더 이상 구식 리스트를 지원하지 않습니다.

  • url()``에 대한 문자열 ``view 인수에 대한 지원이 제거됩니다.

  • ``django.forms.Form._has_changed()``를 ``has_changed()``로 이름을 바꾸는 이전 버전과 호환되는 심이 제거됩니다.

  • removetags 템플릿 필터가 제거됩니다.

  • django.utils.html``의 ``remove_tags()strip_entities() 함수가 제거됩니다.

  • django.contrib.auth.views.password_reset()``에 대한 ``is_admin_site 인수가 제거됩니다.

  • ``django.db.models.field.subclassing.SubfieldBase``가 제거됩니다.

  • django.utils.checksums``는 제거되며, 해당 기능은 ``django-localflavor 1.1 이상에 포함되어 있습니다.

  • django.contrib.admin.helpers.InlineAdminForm``의 ``original_content_type_id 속성이 제거됩니다.

  • FormMixin.get_form()``에서 ``form_class 인수에 기본값 없이도 정의할 수 있도록 하던 하위 호환용 shim이 제거됩니다.

  • 다음 설정이 제거됩니다.

    • ALLOWED_INCLUDE_ROOTS

    • TEMPLATE_CONTEXT_PROCESSORS

    • TEMPLATE_DEBUG

    • TEMPLATE_DIRS

    • TEMPLATE_LOADERS

    • TEMPLATE_STRING_IF_INVALID

  • 하위 호환성 별칭인 ``django.template.loader.BaseLoader``가 제거됩니다.

  • get_template()render() 메서드에서 :class:`~django.template.Context`를 더 이상 허용하지 않습니다.

  • Template response APIs </ref/template-response>`에서는 :class:`~django.template.ContextTemplate 대신 각각 :class:`dict`와 백엔드 의존적인 템플릿 객체를 사용하도록 강제합니다.

  • 아래 함수와 클래스의 current_app 매개변수가 제거됩니다.

    • django.shortcuts.render()

    • django.template.Context()

    • django.template.RequestContext()

    • django.template.response.TemplateResponse()

  • 아래 함수의 dictionarycontext_instance 매개변수가 제거됩니다.

    • django.shortcuts.render()

    • django.shortcuts.render_to_response()

    • django.template.loader.render_to_string()

  • 아래 함수의 dirs 매개변수가 제거됩니다.

    • django.template.loader.get_template()

    • django.template.loader.select_template()

    • django.shortcuts.render()

    • django.shortcuts.render_to_response()

  • 세션 검증은 ``’django.contrib.auth.middleware.SessionAuthenticationMiddleware’````MIDDLEWARE_CLASSES``에 포함되어 있는지 여부와 관계없이 활성화됩니다.

  • 비공개 속성인 ``django.db.models.Field.related``가 제거됩니다.

  • migrate 관리 명령의 --list 옵션이 제거됩니다.

  • ssi 템플릿 태그가 제거됩니다.

  • if 템플릿 태그에서 = 비교 연산자 지원이 제거됩니다.

  • Storage.get_available_name()Storage.save()``를 ``max_length 인수 없이 정의할 수 있도록 하던 하위 호환용 shim이 제거됩니다.

  • ModelFormMixin.success_url``에서 레거시 ``%(<foo>)s 구문에 대한 지원이 제거됩니다.

  • GeoQuerySet``의 aggregate 메서드인 ``collect(), extent(), extent3d(), make_line(), ``unionagg()``가 제거됩니다.

  • 콘텐츠 타입 인스턴스를 생성할 때 ``ContentType.name``를 지정하는 기능이 제거됩니다.

  • ``allow_migrate``의 이전 시그니처에 대한 지원이 제거됩니다. 이는 ``allow_migrate(self, db, model)``에서 ``allow_migrate(self, db, app_label, model_name=None, **hints)``로 변경되었습니다.

  • 쉼표로 구분된 인수를 사용하는 {% cycle %} 구문에 대한 지원이 제거됩니다.

  • 잘못된 구분자가 주어졌을 때 :class:`~django.core.signing.Signer`에서 발생하던 경고는 예외로 변경됩니다.

1.9

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.7 릴리스 노트<deprecated-features-1.7>`를 참조하세요.

  • ``django.utils.dictconfig``가 제거됩니다.

  • ``django.utils.importlib``가 제거됩니다.

  • ``django.utils.tzinfo``가 제거됩니다.

  • ``django.utils.unittest``가 제거됩니다.

  • syncdb 명령이 제거됩니다.

  • django.db.models.signals.pre_syncdb``django.db.models.signals.post_syncdb``가 제거됩니다.

  • 데이터베이스 라우터에서 ``allow_syncdb``는 더 이상 자동으로 ``allow_migrate``로 변경되지 않습니다.

  • 마이그레이션 없이 앱을 자동으로 동기화하는 기능이 제거됩니다. --run-syncdb 옵션을 ``migrate``에 전달하지 않는 한, 모든 앱에 마이그레이션이 필수로 요구됩니다.

  • 마이그레이션이 없는 앱을 위한 SQL 관리 명령인 sql, sqlall, sqlclear, sqldropindexes, ``sqlindexes``가 제거됩니다.

  • initial_data fixture와 초기 SQL 데이터의 자동 로드 지원이 제거됩니다.

  • 모든 모델은 설치된 애플리케이션 내부에서 정의되거나, 명시적으로 :attr:`~django.db.models.Options.app_label`을 선언해야 합니다. 또한 애플리케이션이 로드되기 전에는 모델을 임포트할 수 없습니다. 특히 애플리케이션의 루트 패키지에서 모델을 임포트하는 것은 불가능합니다.

  • 모델과 폼에서 사용하는 ``IPAddressField``가 제거됩니다. 이전 마이그레이션과의 호환성을 위해 스텁 필드는 유지됩니다.

  • ``AppCommand.handle_app()``이 더 이상 지원되지 않습니다.

  • RequestSite``get_current_site()``는 더 이상 ``django.contrib.sites.models``에서 임포트할 수 없습니다.

  • runfcgi 관리 명령을 통한 FastCGI 지원이 제거됩니다. 프로젝트는 WSGI를 사용하여 배포하세요.

  • ``django.utils.datastructures.SortedDict``가 제거됩니다. 대신 Python 표준 라이브러리의 :class:`collections.OrderedDict`를 사용하세요.

  • ``ModelAdmin.declared_fieldsets``가 제거됩니다.

  • Django 코드베이스에서 util.py 파일은 모든 util 및 utils 참조를 통합하기 위해 ``utils.py``로 이름이 변경되었습니다. 다음과 같은 하위 호환성을 제공하던 모듈이 제거됩니다.

    • django.contrib.admin.util

    • django.contrib.gis.db.backends.util

    • django.db.backends.util

    • django.forms.util

  • ``ModelAdmin.get_formsets``가 제거됩니다.

  • BaseMemcachedCache._get_memcache_timeout() 메서드를 ``get_backend_timeout()``로 이름을 변경하기 위해 도입된 하위 호환용 shim이 제거됩니다.

  • dumpdata`의 `–natural`` 및 -n 옵션이 제거됩니다.

  • serializers.serialize()``에 대한 ``use_natural_keys 인수가 제거됩니다.

  • 비공개 API ``django.forms.forms.get_declared_fields()``가 제거됩니다.

  • ``DateTimeField``에서 ``SplitDateTimeWidget``을 사용할 수 있는 기능이 제거됩니다.

  • WSGIRequest.REQUEST 속성이 제거됩니다.

  • django.utils.datastructures.MergeDict 클래스가 제거됩니다.

  • zh-cnzh-tw 언어 코드는 제거되며, 각각 zh-hanszh-hant 언어 코드로 대체됩니다.

  • 내부 ``django.utils.functional.memoize``가 제거됩니다.

  • ``django.core.cache.get_cache``가 제거됩니다. 대신 :setting:`CACHES`에 적절한 항목을 추가하고 :data:`django.core.cache.caches`를 사용하세요.

  • ``django.db.models.loading``이 제거됩니다.

  • querysets에 호출 가능한 객체를 인수로 전달하는 것은 더 이상 불가능합니다.

  • ``BaseCommand.requires_model_validation``은 ``requires_system_checks``로 대체되어 제거됩니다. 관리자 검증은 관리자 점검으로 대체됩니다.

  • ModelAdmin.validator_classdefault_validator_class 속성이 제거됩니다.

  • ``ModelAdmin.validate()``가 제거됩니다.

  • django.db.backends.DatabaseValidation.validate_field``는 ``check_field 메서드로 대체되어 제거됩니다.

  • validate 관리 명령이 제거됩니다.

  • ``django.utils.module_loading.import_by_path``는 ``django.utils.module_loading.import_string``로 대체되어 제거됩니다.

  • ssiurl 템플릿 태그는 future 템플릿 태그 라이브러리에서 제거됩니다(1.3/1.4 지원 중단 기간 동안 사용됨).

  • ``django.utils.text.javascript_quote``가 제거됩니다.

  • 데이터베이스 설정에서 ``TEST_``로 시작하는 독립 항목 형태의 테스트 설정은 더 이상 지원되지 않습니다.

  • The cache_choices option to ModelChoiceField and ModelMultipleChoiceField will be removed.

  • RedirectView.permanent 속성의 기본값이 ``True``에서 ``False``로 변경됩니다.

  • ``django.contrib.sitemaps.FlatPageSitemap``이 ``django.contrib.flatpages.sitemaps.FlatPageSitemap``로 대체되어 제거됩니다.

  • 비공개 API ``django.test.utils.TestTemplateLoader``가 제거됩니다.

  • django.contrib.contenttypes.generic 모듈이 제거됩니다.

  • 비공개 API django.db.models.sql.where.WhereNode.make_atom()``django.db.models.sql.where.Constraint``가 제거됩니다.

1.8

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.6 릴리스 노트<deprecated-features-1.6>`를 참조하세요.

  • ``django.contrib.comments``가 제거됩니다.

  • 다음 트랜잭션 관리 API가 제거됩니다.

    • TransactionMiddleware,

    • django.db.transaction``에서 정의된 데코레이터 컨텍스트 관리자 ``autocommit, commit_on_success, commit_manually,

    • django.db.transaction``에서 정의된 함수 ``commit_unless_managedrollback_unless_managed,

    • TRANSACTIONS_MANAGED 설정.

  • cyclefirstof 템플릿 태그는 인수를 자동으로 이스케이프 처리합니다. Django 1.6과 1.7에서는 이 동작이 future 템플릿 태그 라이브러리의 해당 태그를 통해 제공됩니다.

  • SEND_BROKEN_LINK_EMAILS 설정이 제거됩니다. 대신 MIDDLEWARE_CLASSES 설정에 django.middleware.common.BrokenLinkEmailsMiddleware 미들웨어를 추가하세요.

  • ``django.middleware.doc.XViewMiddleware``가 제거됩니다. 대신 ``django.contrib.admindocs.middleware.XViewMiddleware``를 사용하세요.

  • ``Model._meta.module_name``이 ``model_name``로 이름이 변경되었습니다.

  • get_query_set 및 유사한 queryset 메서드의 이름을 변경하기 위해 도입된 하위 호환용 shim이 제거됩니다. 이는 다음 클래스에 영향을 미칩니다: BaseModelAdmin, ChangeList, BaseCommentNode, GenericForeignKey, Manager, SingleRelatedObjectDescriptor, ReverseSingleRelatedObjectDescriptor.

  • ChangeList.root_query_setChangeList.query_set 속성의 이름을 변경하기 위해 도입된 하위 호환용 shim이 제거됩니다.

  • django.views.defaults.shortcut``은 코어 Django 코드베이스에서 ``django.contrib 참조를 모두 제거하려는 과정의 일환으로 제거됩니다. 대신 ``django.contrib.contenttypes.views.shortcut``을 사용하세요. ``django.conf.urls.shortcut``도 제거됩니다.

  • Python Imaging Library(PIL) 모듈 지원이 제거됩니다. 이는 해당 라이브러리가 더 이상 활발하게 유지 관리되지 않고 Python 3에서도 동작하지 않기 때문입니다.

  • 다음 비공개 API가 제거됩니다.

    • 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``이 ``django.forms.widgets.RadioChoiceInput``으로 대체되어 제거됩니다.

  • django.test.simple 모듈과 django.test.simple.DjangoTestSuiteRunner 클래스가 제거됩니다. 대신 ``django.test.runner.DiscoverRunner``를 사용하세요.

  • django.test._doctest 모듈이 제거됩니다. 대신 Python 표준 라이브러리의 doctest 모듈을 사용하세요.

  • CACHE_MIDDLEWARE_ANONYMOUS_ONLY 설정이 제거됩니다.

  • ManyToMany 모델 필드를 사용하는 폼에서 사용자 제공 ``help_text``를 덮어쓰거나 추가하기 위해 사용되던 *여러 개를 선택하려면 “Control” 키 또는 Mac의 “Command” 키를 누르세요.*라는 하드코딩된 문자열은 더 이상 Django의 모델이나 폼 레이어에서 사용되지 않습니다.

  • Model._meta.get_(add|change|delete)_permission 메서드가 제거됩니다.

  • 하위 호환성을 위해 더 이상 django_language 세션 키를 읽지 않습니다.

  • Geographic Sitemaps가 제거됩니다(django.contrib.gis.sitemaps.views.indexdjango.contrib.gis.sitemaps.views.sitemap).

  • django.utils.html.fix_ampersands, fix_ampersands 템플릿 필터와 ``django.utils.html.clean_html``은 단축된 사용 중단 절차를 거쳐 제거됩니다.

1.7

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.5 릴리스 노트<deprecated-features-1.5>`를 참조하세요.

  • django.utils.simplejson 모듈이 제거됩니다. 대신 표준 라이브러리에서 제공되는 :mod:`json`을 사용해야 합니다.

  • django.utils.itercompat.product 함수가 제거됩니다. 대신 Python 내장 버전을 사용하세요.

  • INSTALLED_APPS 및 TEMPLATE_DIRS 설정을 튜플이 아닌 일반 문자열로 지정된 경우 이를 자동으로 수정하던 기능이 제거되며, 예외가 발생합니다.

  • HttpResponse, SimpleTemplateResponse, TemplateResponse`의 ``__init__` 메서드에 대한 mimetype 인수가 제거됩니다. 대신 content_type``을 사용하세요. 이는 ``render_to_response() 단축 함수와 sitemap 뷰 index(), :func:`~django.contrib.sitemaps.views.sitemap`에도 동일하게 적용됩니다.

  • :class:`~django.http.HttpResponse`를 이터레이터로 초기화하거나, :attr:`~django.http.HttpResponse.content`에 이터레이터를 설정하면 해당 이터레이터는 즉시 소비됩니다.

  • AUTH_PROFILE_MODULE 설정과 User 모델의 get_profile() 메서드가 제거됩니다.

  • cleanup 관리 명령이 제거되며, ``clearsessions``로 대체됩니다.

  • daily_cleanup.py 스크립트가 제거됩니다.

  • select_related`에서 ``depth`() 키워드 인수가 제거됩니다.

  • django.test.utils`의 문서화되지 않은 ``get_warnings_state()`/restore_warnings_state() 함수와 django.test.*TestCase <django-testcase-subclasses>`의 ``save_warnings_state()`/ restore_warnings_state() 메서드는 사용 중단되었습니다. 대신 Python 2.6부터 제공되는 warnings.catch_warnings 컨텍스트 관리자를 사용하세요.

  • AuthenticationForm`의 문서화되지 않은 ``check_for_test_cookie` 메서드는 단축된 사용 중단 절차를 거쳐 제거됩니다. 이 폼을 상속하는 사용자는 이 메서드에 대한 호출을 제거하고, 인증 관련 뷰가 CSRF 보호되도록 설정해야 합니다. 이를 통해 쿠키가 활성화되도록 할 수 있습니다.

  • base36로 인코딩된 사용자 ID를 지원하는 django.contrib.auth.views.password_reset_confirm() 버전(django.contrib.auth.views.password_reset_confirm_uidb36)이 제거됩니다. 사이트에서 Django 1.6을 ``PASSWORD_RESET_TIMEOUT_DAYS``보다 오랜 기간 동안 사용해 왔다면 이 변경 사항은 아무런 영향이 없습니다. 그렇지 않은 경우, Django 1.7로 업그레이드하기 전에 생성된 비밀번호 재설정 링크는 업그레이드 후에 작동하지 않습니다.

  • django.utils.encoding.StrAndUnicode mixin이 제거됩니다.

1.6

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.4 릴리스 노트<deprecated-features-1.4>`를 참조하세요.

  • ``django.contrib.databrowse``가 제거됩니다.

  • ``django.contrib.localflavor``는 단축된 사용 중단 절차를 거쳐 제거됩니다.

  • ``django.contrib.markup``은 단축된 사용 중단 절차를 거쳐 제거됩니다.

  • The compatibility modules django.utils.copycompat and django.utils.hashcompat as well as the functions django.utils.itercompat.all and django.utils.itercompat.any will be removed. The Python builtin versions should be used instead.

  • csrf_response_exemptcsrf_view_exempt 데코레이터가 제거됩니다. 1.4부터 ``csrf_response_exempt``는 no-op(동일한 함수를 반환함)이었으며, ``csrf_view_exempt``는 ``django.views.decorators.csrf.csrf_exempt``의 동의어로 사용되어 왔습니다. 대신 ``django.views.decorators.csrf.csrf_exempt``를 사용해야 합니다.

  • django.core.cache.backends.memcached.CacheClass 백엔드는 PyLibMC 지원을 도입하기 위해 Django 1.3에서 둘로 분리되었습니다. 기존의 ``CacheClass``는 ``django.core.cache.backends.memcached.MemcachedCache``로 대체되어 제거됩니다.

  • 앞으로 ``django.contrib.localflavor.uk``의 UK 접두사가 붙은 객체는 GB 접두사가 붙은 이름으로만 접근할 수 있습니다(GB는 영국의 올바른 ISO 3166 코드입니다).

  • IGNORABLE_404_STARTSIGNORABLE_404_ENDS 설정은 1.4 릴리스에서 :setting:`IGNORABLE_404_URLS`로 대체되었습니다. 해당 설정들은 제거될 예정입니다.

  • 폼 위저드는 1.4에서 교체 가능한 백엔드를 사용하는 클래스 기반 뷰로 리팩터링되었습니다. 기존 구현은 제거될 예정입니다.

  • :func:`~django.views.decorators.cache.cache_page`를 호출하는 레거시 방식이 제거됩니다.

  • 'mail_admins' 로깅 핸들러에 debug-false 필터를 자동으로 추가해 주던 이전 버전 호환용 shim이 제거됩니다. 해당 필터가 필요하다면 LOGGING 설정에 명시적으로 포함해야 합니다.

  • 내장 문자열 자르기 함수인 django.utils.text.truncate_words()django.utils.text.truncate_html_words()``가 ``django.utils.text.Truncator 클래스로 대체되어 제거됩니다.

  • django.contrib.gis.geoip.GeoIP 클래스는 1.4에서 ``django.contrib.gis.geoip``로 이동되었으며, ``django.contrib.gis.utils``에 있던 단축 경로는 제거됩니다.

  • django.conf.urls.defaults``가 제거됩니다. 이제 ``include(), patterns(), url() 함수와 handler404, :data:`~django.conf.urls.handler500`은 ``django.conf.urls``에서 사용할 수 있습니다.

  • setup_environ()execute_manager() 함수는 django.core.management`에서 제거됩니다. 이는 이전(-1.4 이전) 방식의 :file:`manage.py 파일도 더 이상 작동하지 않음을 의미합니다.

  • 템플릿 필터 함수의 속성으로 is_safeneeds_autoescape 플래그를 설정하는 방식은 더 이상 지원되지 않습니다.

  • HttpRequest.raw_post_data 속성은 1.4에서 ``HttpRequest.body``로 이름이 변경되었습니다. 하위 호환성이 제거되므로, ``HttpRequest.raw_post_data``는 더 이상 작동하지 않습니다.

  • ModelAdmin.response_add()``에서 ``post_url_continue 매개변수의 값은 ``None``(새로 생성된 객체의 수정 페이지로 리디렉션) 또는 미리 포맷된 URL이어야 합니다. 이전 기본값인 ``’../%s/’``과 같은 문자열 포맷은 더 이상 허용되지 않습니다.

1.5

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.3 릴리스 노트<deprecated-features-1.3>`를 참조하세요.

  • SECRET_KEY 없이 Django를 실행하면 ``DeprecationWarning``이 아니라 예외가 발생합니다. (일반적인 사용 중단 절차보다 빠르게 적용된 변경입니다. 자세한 내용은 :doc:`Django 1.4 release notes</releases/1.4>`를 참고하세요.)

  • mod_python 요청 핸들러가 제거됩니다. 대신 mod_wsgi 핸들러를 사용해야 합니다.

  • The template attribute on django.test.client.Response objects returned by the test client will be removed. The templates attribute should be used instead.

  • django.test.simple.DjangoTestRunner``가 제거됩니다. 대신 ``unittest 기반 클래스를 사용하세요. ``django.test.simple.DjangoTestRunner``의 기능(예: fail-fast 및 Ctrl-C를 통한 테스트 종료)은 :class:`unittest.TextTestRunner`에서 제공합니다.

  • 문서화되지 않은 함수 ``django.contrib.formtools.utils.security_hash``가 제거됩니다. 대신 ``django.contrib.formtools.utils.form_hmac``을 사용하세요.

  • 함수 기반 제네릭 뷰 모듈은 :doc:`here </topics/class-based-views/index>`에 설명된 클래스 기반 제네릭 뷰 모듈로 대체되어 제거됩니다.

  • ``django.core.servers.basehttp.AdminMediaHandler``가 제거됩니다. 대신 ``django.contrib.staticfiles.handlers.StaticFilesHandler``를 사용하세요.

  • 템플릿 태그 라이브러리 adminmedia 및 템플릿 태그 ``{% admin_media_prefix %}``는 일반 정적 파일로 대체되어 제거됩니다. (이는 일반적인 사용 중단 절차보다 빠르게 적용된 변경입니다. 자세한 내용은 :doc:`Django 1.4 release notes</releases/1.4>`를 참고하세요.)

  • urlssi 템플릿 태그는 수정되어, 각 태그의 첫 번째 인수로 암묵적인 문자열이 아닌 템플릿 변수를 사용합니다. 1.4에서는 이 동작이 future 템플릿 태그 라이브러리의 태그 버전을 통해 제공됩니다.

  • resetsqlreset 관리 명령이 제거됩니다.

  • 인증 백엔드는 권한과 관련된 모든 메서드에 비활성 사용자가 전달될 수 있도록 지원해야 합니다. supports_inactive_user 속성은 더 이상 확인되지 않으며, 사용자 정의 백엔드에서 제거할 수 있습니다.

  • SRID 값이 없는 지오메트리에서 :meth:`~django.contrib.gis.geos.GEOSGeometry.transform`을 호출할 경우 :class:`~django.contrib.gis.geos.GEOSException`이 발생합니다.

  • ``django.http.CompatCookie``가 ``django.http.SimpleCookie``로 대체되어 제거됩니다.

  • django.core.context_processors.PermWrapperdjango.core.context_processors.PermLookupDict``는 각각 ``django.contrib.auth.context_processors.PermWrapper``django.contrib.auth.context_processors.PermLookupDict``로 대체되어 제거됩니다.

  • 템플릿에서 경로를 일관된 방식으로 결합할 수 있도록 MEDIA_URL 또는 STATIC_URL 설정은 끝에 슬래시로 끝나야 합니다.

  • ``django.db.models.fields.URLField.verify_exists``가 제거됩니다. 이 기능은 해결하기 어려운 보안 및 성능 문제로 인해 1.3.1에서 사용 중단되었으며, 다소 앞당겨진 사용 중단 일정을 따릅니다.

  • *project path*라고 불리는 경로 아래에 위치한 번역은 런타임에 수행되는 번역 빌드 과정에서 무시됩니다. LOCALE_PATHS 설정은 앱에 속하지 않는 번역이 포함된 locale 디렉토리의 파일 시스템 경로를 값에 포함하여 같은 작업에 사용할 수 있습니다.

  • Markup contrib 앱은 Python-Markdown 라이브러리 2.1 이전 버전을 더 이상 지원하지 않습니다. 이는 보안과 관련된 사용 중단이었기 때문에 앞당겨진 일정이 적용되었습니다.

  • CACHE_BACKEND 설정이 제거됩니다. 캐시 백엔드는 CACHES 설정에서 지정해야 합니다.

1.4

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.2 릴리스 노트<deprecated-features-1.2>`를 참조하세요.

  • CsrfResponseMiddlewareCsrfMiddleware``가 제거됩니다. CSRF 보호를 위해 내부에서 ``{% csrf_token %} 템플릿 태그를 사용하세요. ``CsrfViewMiddleware``는 유지되며 기본적으로 활성화되어 있습니다.

  • 1.2에서 코어로 이동한 CSRF 기능(django.contrib.csrf.*)의 기존 임포트 방식은 제거됩니다.

  • django.contrib.gis.db.backend 모듈이 개별 백엔드로 대체되어 제거됩니다.

  • ``SMTPConnection``이 범용 이메일 백엔드 API로 대체되어 제거됩니다.

  • 데이터베이스 백엔드의 다대다 SQL 생성 함수가 제거됩니다.

  • 데이터베이스 연결을 정의하기 위해 최상위 설정인 DATABASE_* 설정 그룹을 사용하는 기능이 제거됩니다.

  • 데이터베이스 백엔드를 지정할 때 약식 표기법(예: django.db.backends.sqlite3 대신 sqlite3)을 사용하는 기능이 제거됩니다.

  • get_db_prep_save, get_db_prep_value, get_db_prep_lookup 메서드는 여러 데이터베이스를 지원해야 합니다.

  • django.contrib.auth``의 ``Message 모델과 User 모델의 관련 매니저(user.message_set), 관련 메서드 (user.message_set.create(), user.get_and_delete_messages())가 제거됩니다. 대신 messages framework </ref/contrib/messages>`를 사용해야 합니다. 또한 auth 컨텍스트 프로세서에서 반환되는 관련 ``messages` 변수도 제거됩니다. 이로 인해 admin 애플리케이션은 messages 컨텍스트 프로세서에 의존하게 됩니다.

  • 인증 백엔드는 권한 확인 시 사용하는 obj 매개변수를 지원해야 합니다. supports_object_permissions 속성은 더 이상 확인되지 않으며, 사용자 정의 백엔드에서 제거할 수 있습니다.

  • 인증 백엔드는 권한과 관련된 모든 메서드에 AnonymousUser 클래스가 전달될 수 있도록 지원해야 합니다. supports_anonymous_user 변수는 더 이상 확인되지 않으며, 사용자 정의 백엔드에서 제거할 수 있습니다.

  • Loader 클래스 대신 호출 가능한 템플릿 로더를 지정하는 기능이 제거되며, 하위 호환성을 위해 내장 템플릿 로더에 포함되어 있던 load_template_source 함수도 함께 제거됩니다.

  • django.utils.translation.get_date_formats()django.utils.translation.get_partial_date_formats() 함수가 제거됩니다. 적절한 형식을 가져오려면 로케일을 고려하는 ``django.utils.formats.get_format()``을 사용하세요.

  • django.forms.fields``의 상수 ``DEFAULT_DATE_INPUT_FORMATS, DEFAULT_TIME_INPUT_FORMATS``DEFAULT_DATETIME_INPUT_FORMATS``가 제거됩니다. 적절한 형식을 가져오려면 ``django.utils.formats.get_format()``을 사용하세요.

  • 함수 기반 테스트 러너를 사용하는 기능이 제거되며, django.test.simple.run_tests() 테스트 러너도 함께 제거됩니다.

  • django.contrib.syndication``의 ``views.feed() 뷰와 feeds.Feed 클래스는 제거됩니다. 대신 클래스 기반 뷰 ``views.Feed``를 사용해야 합니다.

  • 이번 릴리스에서 ``django.core.context_processors.auth``는 제거되며, 대신 ``django.contrib.auth.context_processors.auth``의 새로운 방식이 사용됩니다.

  • postgresql 데이터베이스 백엔드가 제거됩니다. 대신 postgresql_psycopg2 백엔드를 사용하세요.

  • no 언어 코드는 제거되며, nb 언어 코드로 대체됩니다.

  • 인증 백엔드는 1.5 버전까지 boolean 속성 ``supports_inactive_user``를 정의해야 합니다. 이후에는 모든 백엔드가 비활성 사용자를 처리하는 것으로 간주됩니다.

  • django.db.models.fields.XMLField``가 제거됩니다. 필드는 1.3 릴리스에서 사용 중단되었습니다. ``oldforms``가 제거된 이후에는 단순한 ``TextField 이상의 역할을 하지 않았기 때문에 사용 중단 일정이 앞당겨졌습니다. ``XMLField``의 모든 사용은 ``TextField``로 대체할 수 있습니다.

  • django.core.files.storage.Storage``(및 하위클래스)의 ``open() 메서드에 있는 문서화되지 않은 mixin 매개변수는 제거됩니다.

1.3

이러한 변경 사항에 대한 자세한 내용은 :ref:`Django 1.1 릴리스 노트<deprecated-features-1.1>`를 참조하세요.

  • ``AdminSite.root()``를 사용한 admin URL 연결 방식은 제거됩니다. 대신 ``admin.site.urls``를 포함해야 합니다.

  • 인증 백엔드는 1.4 버전까지 boolean 속성 supports_object_permissions``supports_anonymous_user``를 정의해야 합니다. 이후에는 모든 백엔드가 이러한 옵션을 지원하는 것으로 간주됩니다.