다른 장담할만한 Django 질문이 있습니다. 내 수업을위한 데이터베이스 응용 프로그램을 쓰고 있는데, 응용 프로그램 내에서 현재 연도를 설정할 수 있기를 원합니다. 이 배후의 아이디어는 모든 마킹 등이 끝난 다음 학년도에 수동으로 전환 할 수 있다는 것입니다. 그것은 좋은 것Django : 모델 내 모델 인스턴스 생성
class MetaData(models.Model):
data_id = models.IntegerField(default = 1, unique = True)
current_year = models.IntegerField(choices=ACADEMIC_YEARS)
: - 현재 연도를 전환 할 수있는 기능은 다음뿐만 아니라 다른 일을하도록되어 새로운 기본 과정 등의 학생들을 넣어
그래서 나는라는 메타 데이터 모델을 생성 다른 모델에서 current_year에 액세스 할 수 있다면, 예를 들어 새로운 코스/학생을 입력 할 때 기본값으로 설정할 수 있습니다.
class Course(models.Model):
try:
meta = MetaData.objects.get(data_id=1)
current_year = meta.current_year
except MetaData.DoesNotExist:
current_year = 2010
year = models.IntegerField(choices=ACADEMIC_YEARS, default=current_year)
불행히도, 난 오류 얻을 :이 시도 "이러한 테이블을 : database_metadata"나는 처음으로 syncdb를 실행할 때 -이 코드를 테스트 할 때 syncdb가 테이블을 작성하지 않았기 때문에 내가 추측하는 것입니다.
더 나은 솔루션이 있습니까?
외래 키가 도움이되지 것입니다 : 당신은 여전히
MetaData
를 사용하려는 경우, 단지 함수가 될하기 위해
current_year
변경 1 년에 한 번씩 변경해야합니다. 2012 년부터 2013 년까지 변경되는 관리 메뉴의 버튼을 클릭하고 새 학생의 기본 과목에 모든 학생을 배치하는 등의 기능을 계획하고 있습니다. 그리고 새로운 코스를 입력하고 싶다면 current_year를 기본값으로 사용하는 것이 유용 할 것입니다. – Tobi'default ='다음에'this_year'가 classmethod와 같이 호출 가능해야합니다. – okm
죄송합니다. 감사합니다. 'def this_year'이 (가) 잘못된 수업에있었습니다. – danodonovan