2011-04-25 3 views
4

나를 즉시 설정을 변경할 수있는 시스템을 만드는 방법에 대한 제안 사항이 있습니까? 예를 들어 사용자가 채울 수있는 텍스트 영역이 있으며 현재 최대 글자 수 제한은 1000입니다. 언젠가이를 500이나 2000 또는 다른 것으로 변경하려고 할 수 있습니다. 따라서 DB를 백업하고, syncdb를 실행하고, DB를 다시 가져와, 단순한 값을 변경하기 위해 악몽을 꾼다는 악몽을 피고 싶지 않기 때문에 모델 자체에 제한을두기를 원하지 않습니다. 차라리 Javascript 나 문자 길이에 대한 views.py 코드를 통해 확인해 보겠습니다.Django 앱 설정을 데이터베이스에 저장하거나 변경하는 방법은 무엇입니까?

if (length > value_stored_somewhere) 
throw error message 

는 난 그냥 아마도 별도의 local-settings.py을 settings.py에서이 값을 넣어, 또는 수 있다고 생각하지만, 내가 응용 프로그램을 다시 시작해야합니다 값을 변경하려는 경우 그 오른쪽 의미? 아니면 내가 틀릴 수도 있으므로 내가 틀렸다면 알려주세요.

이 작업을 수행하는 가장 좋은 방법은 설정을 데이터베이스에 저장하는 것이므로 관리자는 .py 파일을 건드리지 않고도 즉시 값을 변경할 수 있다고 생각했습니다. 나는 장고 dbsettings를 살펴 봤지만 거기에 어떤 활동도없는 것 같습니다.

제게 제안과 해결책을 알려주세요. 고마워요!

답변

3

귀하는 모든 가정을 올바르게 지냅니다. 모든 설정 파일에서 설정을 변경하려면 앱을 다시 시작해야합니다. 지금 당장 "설정을 즉시 변경할 수있는 방법"이 없습니다. Live Settings이라는 처리 외부에 재사용 가능한 앱이 많이 있습니다. 어쩌면이 중 하나를 시도해보십시오. 직접 설정을 변경해도 Django에서의 동작은 변경되지 않습니다 (Django 또는 다른 앱에서도 내부 설정을 직접 사용하고 있기 때문에). 하지만 맞춤 앱이나 프로젝트의 경우 이는 좋은 접근 방법입니다.

+0

Yikes ... 그건 무서운 대답입니다. 그래서 장고 프로들은이 상황에서 무엇을합니까? 그들은 어떻게 설정 변경을 처리합니까? 또한 Apache를 사용하는 라이브 프로덕션 환경에서 장고 응용 프로그램을 다시 시작하려면 어떻게해야합니까? 감사! – rabbid

+0

예, 장고 내 처리 설정이 최적이 아니며 이미 자주 비판을 받고 있습니다. 작은 프로젝트의 경우 파일을 변경하고 배포하는 것이 좋습니다. 더 큰 프로젝트의 경우 처음부터 라이브 설정 앱을 고려할 것입니다. 그러나 위 회사 중 하나도 우리 요구에 맞지 않으므로 맞춤 설정을 작성했습니다. –

+0

그리고 질문에 대해 : 당신이 아파치와 mod_wsgi와 함께 장고 프로젝트를 전개한다면 간단히'touch apache.wsgi' (프로젝트의 wsgi 스크립트가'apache.wsgi'라고 가정)를 할 수 있습니다. 이렇게하면 기본 아파치 프로세스가 새 코드를 사용하게됩니다. –

관련 문제