모델 인스턴스의 상수를 갖고 싶습니다. 단순화, 이는 다음과 같다 : 물론Django 모델 인스턴스 상수
class MyModel(models.Model):
codename = models.CharField(max_length=50, unique=True)
constant1 = MyModel.objects.get_or_create(codename="cool")
이 코드는 데이터베이스에 데이터를 입력을 시도합니다 때문에은 너무 간단, 어떤 마이그레이션이 완료되기 전에 그렇게 할 수 없거나이 때문에 실패합니다 어떤 시점에서 "모델이로드되지 않습니다."등등.하지만 가져 오기가 편리하기 때문에 이처럼 상수를 갖고 싶습니다.
"def constant1() : ..."또는 "def get_constant1() : ..."과 같은 기능을하는 것은 당연한 일이지만 문제가 발생하지 않습니다 마이그레이션 단계.
하지만, 함수를 좋아하지 변수 (뭔가 = constant1)처럼 내 "constant1"에 접근 할 (뭔가 = constant1())
이 구현하는 올바른 방법이, 알려주세요 이 이런 상수, 또는 항복해야합니까?
왜 같은 파일에서 그렇게해야합니까? – user2507
그것은 * 상수 *가 아닙니다. 가장 잘 알려진 객체 *이지만 데이터베이스에서 계속 가져옵니다. 본질적으로 : [초기 데이터] (https://docs.djangoproject.com/en/1.10/howto/initial-data/)로 데이터베이스를 채우고 잘 알려진 객체를 쿼리하는 방법을 제공하십시오. 'constant1'은 "상수"가 정의 된 시점의 객체가 아니라 객체를 사용할 때의 객체를 반영합니다 ... 재미있는 디버깅을하십시오. – dhke
@dhke 물론, 나는 그걸로 괜찮아. 이것은 완전히 기대되는 행동입니다. – LOMS