0

Python と Django は初めてです。ブログを作成するチュートリアルも、ビールと醸造所に基づいてページを作成する別のチュートリアルも経験しました。

これをやりながら、フォローしながら自分のプロジェクトを始めました。最初のページにはいくつかの州がリンク付きで一覧表示され、2 ページ目にはそれらの州内の特定の都市が一覧表示されます。

そこから、その都市に関連する 3 番目のサイト固有のアイテムにリンクしたいと考えています。最初の 2 ページはうまく機能します。ただし、何を試しても都市名をクリックすると、空白のページが表示されます。

そして、私は自分の人生がどこで間違っているのかを理解することはできません. 私は、views.py から urls.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

そして私の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 %}

これは州を取り、都市をリストします。そこにはいくつかの追加のものがあります。

 {% 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 %}
4

1 に答える 1

0

URL の問題、2 つの 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 %}

これはあなたのために働くでしょう。

于 2014-09-20T05:43:41.617 に答える