我的Django视图和URL在某个地方不匹配,这给了我一个空白屏幕

我的Django视图和URL在某个地方不匹配,这给了我一个空白屏幕,django,views,django-urls,django-context,Django,Views,Django Urls,Django Context,我是Python和Django的新手,我读过构建博客的教程,我读过另一个基于啤酒和酿酒厂构建页面的教程 在完成这个过程中,我开始了我自己的项目,同时也继续进行下去。第一页列出了几个州的链接,第二页列出了这些州内的具体城市 从那里我想链接到第三个与该城市相关的站点特定项目。前两页很好用。然而,当我点击城市名称时,无论我尝试了什么,我都会得到一个空白页面 我一辈子都不知道自己哪里出了问题。我不认为我完全理解从views.py到url.py再到html的变量流 也许有人能给我一些指导,告诉我哪里出了问

我是Python和Django的新手,我读过构建博客的教程,我读过另一个基于啤酒和酿酒厂构建页面的教程

在完成这个过程中,我开始了我自己的项目,同时也继续进行下去。第一页列出了几个州的链接,第二页列出了这些州内的具体城市

从那里我想链接到第三个与该城市相关的站点特定项目。前两页很好用。然而,当我点击城市名称时,无论我尝试了什么,我都会得到一个空白页面

我一辈子都不知道自己哪里出了问题。我不认为我完全理解从views.py到url.py再到html的变量流

也许有人能给我一些指导,告诉我哪里出了问题。再次请耐心,因为我是Django的新手,对python的掌握过于简单

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
还有我的观点

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))
还有我的URL.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 %}
这需要国家和列出的城市,有一些额外的东西在那里只是试验

 {% 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 %}
这是被打破的那一页

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

您的URL中的问题是,您的两个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 %}

这对你有用。

我的问题没有完全解决,但它让我找到了答案。所以我所做的是,按照你的建议更改了URL和html链接,但仍然产生了一个空白。因此,返回一个步骤,将/state/添加到url中的我的RcView行和html中的链接中。然后在RcView html中我的链接的末尾添加了一个简单的/,它工作得非常好。谢谢你引导我走上正确的方向。