2014-09-20 1 views
0

저는 파이썬과 장고에 익숙하지 않습니다. 블로그를 작성하는 자습서를 읽었으며 다른 빌드를 작성했습니다. 맥주 및 양조장을 기반으로 한 페이지.내 Django보기 및 URL이 어딘가에서 빈 화면을 제공하는 것과 일치하지 않습니다.

나는이 과정을 겪고있는 동안 내 프로젝트를 시작했다. 첫 번째 페이지는 링크가있는 몇 개의 주를 나열하며 두 번째 페이지는 해당 주 내의 특정 도시를 나열합니다.

거기에서 그 도시와 관련된 세 번째 사이트의 특정 항목에 연결하고 싶습니다. 처음 두 페이지는 훌륭하게 작동합니다. 그러나 내가 시도한 것에 상관없이 도시 이름을 클릭하면 빈 페이지가 표시됩니다.

그리고 나는 내 인생이 내가 잘못 될 곳을 찾아 낼 수 없습니다. 나는 views.py에서 urls.py에 대한 변수의 html 로의 흐름을 완전히 이해하고 있다고 생각하지 않는다.

어쩌면 누군가 내가 잘못 가고있는 부분에 대한 안내를 나에게 줄 수 있습니다. 다시 장고에 익숙해 져서 파이썬에 대한 간단한 이해를 가지면서 인내심을 가져주세요.

class Meta(models.Model): 
    rcabbr    = models.CharField(max_length = 15) 
    slug    = models.SlugField(unique=False) 
    state    = models.ForeignKey('State') 
    rc_state   = models.CharField(max_length = 3) 
    oerp    = models.CharField(max_length=18) 
    subgrp    = models.SlugField() 
    sonus_pic   = models.CharField(max_length=8) 
    ems     = models.CharField(max_length=14) 
    agc     = models.CharField(max_length=14) 

    def __unicode__(self): 
     return self.rcabbr 

class State(models.Model): 
    name    = models.CharField(max_length=2) 
    slug    = models.SlugField(unique=True) 
    state_long   = models.CharField(max_length=15) 
    owning_site   = models.CharField(max_length=12) 

    def __unicode__(self): 
     return self.name 
     return self.state_long 

내 views.py

def StateAll(request): 
    statelist = State.objects.all().order_by("name") 
    context = {'states':statelist} 
    return render_to_response('statelist.html',context,   

    context_instance=RequestContext(request)) 

def RcView(request, rclist): 
    rcs = Meta.objects.filter(rc_state = rclist) 
    context = {'rc_list': rcs} 
    return render_to_response('rclist.html',context, context_instance=RequestContext(request)) 

def RateCenterView(request,rcviews): # = rcviews is passed from the URL conf 
    rcv = Meta.objects.filter(rcabbr = rcviews) 
    context = {'whatrcv': rcv} 
    return render_to_response('rcview.html',context, context_instance=RequestContext(request)) 

내 URLS.py

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    (r'^$', TemplateView.as_view(template_name='index.html')), 
    url(r'^meta/$', 'meta.views.StateAll'), 
    (r'^meta/(?P<rclist>.*)/$', 'meta.views.RcView'), 
    (r'^meta/(?P<rcviews>.*)/$', 'meta.views.RateCenterView'), 
) 

페이지 이 밖으로 목록에 페이지에서 코드의 조각 상태

{% for state in states %} 
    <p><a href="/meta/{{ state.name }}/">{{ state.state_long }}</a></p> 
{% endfor %} 

테이크 아웃 이 단지이 페이지 먹으 렴하여 URL에

{% for rca in whatrcv %} 
    <p>RateCenter Slug:  {{ rca.slug }}</p> 
    <p>RateCenter RC_State: {{ rca.rc_state }}</p> 
    <p>RateCenter:   {{ rca }}</p> 
{% endfor %} 

답변

0

문제를 파산

{% for rc in rc_list %} 
    <p><a href="/meta/{{ rc.slug }}">{{ rc }}</a></p> 
    <p>RateCenter Slug: {{ rc.slug }}</p> 
    <p>RateCenter RC_State: {{ rc.rc_state }}</p> 
    <p>RateCenter:   {{ rc }}</p> 
{% endfor %} 

을 실험에 몇 가지 여분의 물건, 상태를 S와 도시를 나열하여 두 개의 URL은 동일하고 있습니다 /로 끝나지 않는 html url (href = "/ meta/city/{{rc.slug}}). 이와 같은 URL을 변경합니다

urlpatterns = patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    (r'^$', TemplateView.as_view(template_name='index.html')), 
    url(r'^meta/$', 'meta.views.StateAll'), 
    (r'^meta/(?P<rclist>.*)/$', 'meta.views.RcView'), 
    (r'^meta/city/(?P<rcviews>.*)/$', 'meta.views.RateCenterView'), 
) 

은 다음과 같이 당신의 HTML을 변경 : 이것은 당신을 위해

{% for rc in rc_list %} 
    <p><a href="/meta/city/{{ rc.slug }}/">{{ rc }}</a></p> 
    <p>RateCenter Slug: {{ rc.slug }}</p> 
    <p>RateCenter RC_State: {{ rc.rc_state }}</p> 
    <p>RateCenter:   {{ rc }}</p> 
{% endfor %} 

을 작동합니다.

+0

정확히 내 문제를 해결하지 못했지만 대답을 이끌어 냈습니다. 그래서 내가 한 일은 당신이 제안한 것처럼 URL과 html 링크를 변경했지만 여전히 공백을 남겼습니다. 그래서 한 걸음 뒤로 가서 "/ state /"를 URL의 내 RcView 행과 html의 링크에 추가했습니다. 그리고 나서 RcView html의 내 링크 끝에 간단한 "/"를 추가하여 완벽하게 작동합니다. 올바른 방향으로 나를 조종 해 주신 Yogesh에게 감사드립니다. – user3255253

관련 문제