django에 포함 된 urls.py와 함께 get_absolute_url에서 정확한 절대 URL을 어떻게 얻을 수 있습니까?

StackOverflow https://stackoverflow.com/questions/947797

문제

Django 프로젝트에서 다른 앱에서 제대로 분리하려고 노력하고있는 앱을 구축하고 있습니다 (Django 앱을 분리하는 데있어 강의를 자유롭게 강의하십시오. ).

내 문제는 이것입니다. 내가 작성한 get_ aboptute_url () 메소드는 상대 경로를 반환합니다. 내 견해를 바탕으로. 프로젝트 urls.py에 특별한 이름의 뷰를 추가 해야하는 것은 잘못된 것 같아서 앱에 절대 URL을 가질 수 있으며 내가 무엇을 잘못하고 있는지 알 수 없습니다. 그래서 누군가가 나를 도울 수 있다면, 나는 그것을 정말로 감사 할 것입니다 (그리고 내가이 빨판을 풀 때 당신을 언급합니다!)

SO와 같은 URL 패턴을 기반으로 다른 urls.py를 포함하는 프로젝트 수준 URLS.py가 있습니다 (이름은이 예제에 대해서만 말입니다).

Project-urls.py

urlpatterns = patterns('',
    ('^$', direct_to_template, {'template': 'base.html'}),
    (r'^app', include('project.app.urls')),
)

app-urls.py

urlpatterns = patterns('',
    url(r'(?P<slug>[-\w]+)?/?$', 'app.views.home', name='app_home'),
)

이제 내 모델에는 다음과 같은 것이 있습니다.

class AppModel(models.Model):
    title               = models.CharField(_('title'), max_length=100)
    slug                = models.SlugField(_('slug'), unique=True)

    @permalink
    def get_absolute_url(self):
        return ('app_home', None, {'slug': self.slug})

내가 전화 할 때 {{appinstance.get_ Absolute_url}}} 템플릿에서는 다음과 같은 것을 얻습니다.

/slug-is-here

절대적인 것이 아니며 내 urls.py를 기반으로 의미가 있습니다. 이 앱을 깨끗하게 유지하면서 프로젝트와 너무 깊이 부합하지 않으면 서 실제 절대 URL을 얻으려면 무엇을 변경해야합니까?

도움이 되었습니까?

해결책

웰프,

내가 이것을 볼 때 :

/slug-is-here

나는 더 가까이 보았을 것입니다. 실제로 일어나고있는 일은 다음과 같습니다.

/app-pathslug-is-here

프로젝트 urls.py에서 내 앱의 Regex에 후행 슬래시를 놓치고있었습니다.

그래서 그래. 그게 당신에게 교훈이되게하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top