2011-12-07 4 views
2

장고 사이트가 있습니다. 모든 표준 사이트와 마찬가지로 URLConfs를 사용하여 URL을보기와 연결합니다. 그러나 그 외에도 데이터베이스의 데이터에서 동적으로 생성하는 일부 URL 구성이 있습니다. 모든 것이 내가 원하는대로 작동합니다.실행중인 사이트의 URLConfs를 동적으로 다시로드하십시오.

사이트에서 코드를 실행하는 동안 모든 URLConfs를 다시로드 할 수 있습니까? 누군가 데이터베이스를 업데이트하고 사이트의 일부 URL을 변경하는 경우 모든 URL의 "재발견"을 실행하고 싶습니다. 이렇게하면 내 코드가 DB의 데이터에서 동적으로 URL을 다시 작성하게됩니다.

현재 생성 된 URL은 URL 계층 구조의 아무 곳에 나있을 수 있습니다. 이들은 모두/dynamic/ 또는 이와 같은 하나의 접두사 아래에있는 것은 아닙니다. 그러나 이것이 필요한 작업을 수행하는 데 절대적으로 필요한 경우 모든 동적 URL을 하나의 접두어로 사용할 수 있습니다.

URL 재발견이 진행되는 동안 사이트에 일부 가동 중지 시간이 허용됩니다.

어떻게 모든 URLConf를 다시로드 할 수 있습니까?

+0

텍사스 트리뷴에서 똑같은 일을해야했습니다. 리디렉션 프레임 워크를 사용하여 이전 URL 스키마를 지원하면서 새로운 URL 스키마를 구현했으며 매력처럼 작동했습니다. 그것은 당신의 필요에 정확하게 부합하지 않을 수도 있지만 당신에게 몇 가지 아이디어를 줄 것입니다. – Brandon

+0

이전 URL을 유지하고 새 URL로 리디렉션 할 필요가 없습니다. 나는 내 문제가 더 간단하다고 생각한다. 누군가 새로운 URL에 해당하는 새 db 항목을 추가하면 URLConfs를 어떻게 다시로드합니까? 현재, 나는 url.py 파일을 가지고있다.이 파일은 DB로부터 url 패턴을 생성한다. 코드에서 모든 URL 패턴을 다시로드하는 방법은 무엇입니까? –

+0

장고가 액세스 할 때마다 호출되는 getter로 url 패턴을 만드는 것은 어떨까요? –

답변

5

귀하의 질문은 대부분의 장고 프로그래머가 허용하지 않는 것을 전제로합니다. 즉, 데이터베이스에서 동적으로 URL을 만들거나 만들 수 있어야한다는 것입니다. 당신이 그렇게한다면, 당신은 잘못하고있는 것입니다.

URL 패턴은 데이터가 아닌 코드의 일부입니다. URL 자체는 패턴과 데이터를 결합하여 형성됩니다 (예 : foo/<slug>/bar/). URL 처리기가 아닌보기에 의해 해결되기 때문에 새 슬러그를 추가 할 때 다시로드 할 필요가 없습니다.

+0

나는 다니엘에 동의한다. The Tribune에서도 우리는 패턴을 동적으로 생성하지 않았습니다. 그들은 urls.py에 정의되었습니다. +1 당신 대니얼. – Brandon

+1

나는 장고가 정한 패러다임을 따르지 않는다는 것을 알고있다. 그러나 실제 요구 사항은 다음과 같습니다. 1. 비즈니스 사용자는 동적으로 새 페이지를 편집하고 (드물게) 추가 할 수 있습니다. 2. 페이지는 사이트 계층 구조의 어느 곳이라도 될 수있는 URL 경로가 있습니다. 3. URL은 SEO 친화적이어야하며/dyn/뒤에 오는 모든 항목이 포함 된/dyn/aboutus/대신 prefer/aboutus /를 사용하십시오. 강타). –

+0

평판 응용 프로그램은 필자에게 필자에게 필요한 기능을 제공하지만 몇 가지 사용자 지정 기능이 없기 때문에 URL을 이름으로 참조 할 수는 없습니다. 나는 타협이 무언가에 만들어 질 필요가있을 것을 본다. 이제 제가 잘못하고 있음을 명심하십시오. 사이트가 초기화 된 후 URL conf의 URL 재생성을 트리거 할 수 있습니까? –

관련 문제