Django: uz(밑줄) 설정
ackages/django/conf/__init__.py", line 122, in configure
INTERNALERROR> raise TypeError('Setting %r must be uppercase.' % name)
INTERNALERROR> TypeError: Setting '_' must be uppercase.
우리가 추가한 관련 설정은 다음과 같다. -try:
from django.utils.translation import gettext_lazy as _
except ImportError:
_ = lambda s: s
...
...
LANGUAGES = [
("en", _("English")),
("ja", _("Japanese")),
]
그러나 이것은 우리가 테스트를 실행할 때만 발생하고 정상적인 django 실행에서는 발생하지 않습니다.breakpoint()
함수에 configure()
를 추가하면 정상적인 django 실행에서 영원히 호출되지 않는다는 것을 증명합니다. (예: 통과 runserver
나의 최초의 직감은pytest djangoapp의 문제라고 말했지만, 내가 발굴을 좀 한 후에 나의 생각은 약간 비뚤어졌다.우선, 나는 이 검사를 도입한 commit
_
를 설정 속성으로 허용하지 않는 것을 연구했다.github에서 blame
사용하면 그것을 찾을 수 있습니다.그래서 이것은django 프로젝트 문제 추적기에서 보았다issue #30234.이 점에서, 나는 Django가 틀렸다고 생각한다. 왜냐하면 현지화 문서가 여전히 설정에서 사용하는 예시
_
를 표시하기 때문이다.피야.이것은 무의미하다. 만약 설정에서 사용하지 못하게 된다면, 왜 공식 문서에 표시해야 합니까?다행히도, 이 문제에 관한 일부 지혜로운 사람들은 Django나 문서와 무관하다고 내 평론에 답했다.문제는pytest djangoapp 호출
_
과 통과settings.configure()
를 설정 명령의 일부로 하는 것이다.나는 내가 얼마나 어색한지 말할 수 없다.나는 먼저pytest djangoapp를 검사한 후에 평론을 문제 추적기에 발표해야 한다.
Reference
이 문제에 관하여(Django: uz(밑줄) 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/k4ml/django--underscore-settings-gotchas-1ca8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)