2012-03-20 1 views
2

장고보기가 아닌 reverse URL Dispatcher does 인이 url과 관련된 django 모델을 검색하고자하는 URL 집합이 있습니다. 코드는 이상적으로 같은 것을 보일 것이다 :django 역방향으로보기를 거부하는 URL입니다. 가능한?

urls_to_lookup = get_urls_to_lookup() 
models = [] 
for url in urls_to_lookup: 
    model = retrieve_django_model(url) 
    models.append(model) 

I합니다 (@permalink decorator를 통해) 그와 관련된 고유 한 모델을 조회하고자하는 URL을 이후를이 가능처럼 보인다하지만 내 구글하여 skillz이 비어오고있다 손으로. 당신의 도움을 주셔서 감사합니다!

EDIT 브레인 스토밍 솔루션에 도움이되는 경우 모든 블로그 게시물에 대해 Google 애널리틱스의 URL을 가져와 자주 열람하는 페이지를 동적으로 표시하고 싶습니다. URL 자체는 도움이되지만 표시 할 블로그 게시물마다 제목, 티저 등을 잡고 싶습니다. 모두 데이터베이스에 저장됩니다.

+1

'@ permalink'는 실제로'reverse'에 대한 래퍼입니다. 기본적으로 "이 메서드의 반환 값을 가져 와서 '역방향'으로 공급한다는 것을 의미합니다. 객체와 URL의 일종의 레지스트리를 생성하지 않습니다. –

+0

그래,하지만 그게 좋지 않을거야 [0.00001 %의 시간에 당신이 나와 같은 필요 :)] – dino

답변

3

사이트 맵을 만들려는 경우. sitemaps contrib app이 있습니다.

모든 URL을 멋진 형식으로 인쇄하려면 this answer을 참조하십시오.

나는 그러한 기능을 가진 이유를 생각하려고 시도하지만 그것은 나를 벗어납니다. 그러나, 이것은 당신이 원하는 것을 할 (테스트하지)해야합니다

from django.db import models 

def retrieve_django_model(url): 
    m_instances = [m for m in models.get_models() \ 
        if m.objects.all().count()] 
    for m in m_instances: 
     if m.objects.all().order_by('?')[0].get_absolute_url() == url: 
      return m 
     else: 
      return None 

을 우리는 경우없는 모델에서 절대 URL을 가져올 수 있기 때문에, 초기 지능형리스트가 인스턴스가 존재하지 않은 그 모델을 필터링, 따라서 절대 URL을 얻을 수 없습니다.

+0

확실히 매핑 작업을 만드는 것은 분명히 작동합니다. 직접적으로 또는 무엇인가 – dino

+0

을 쿼리하는 더 좋은 방법이 있었으면 좋겠다. 위의이 질문의 사용법에 유의해라. 나는 그것이 당신을 위해 몇 가지 아이디어를 촉발 시켰을 때를 대비해 명확히 해줄 것이라고 생각했습니다. 의견을 보내 주셔서 감사합니다! – dino

관련 문제