0

Django に問題があります。

私のエラーメッセージ:

割り当て前に参照された /city/city ローカル変数 'adv_city' での UnboundLocalError

トレースバック: http://dpaste.com/751727/

ビュー:

def advert_by_city(request):
    c = request.GET.get('city', '')
    if c:
        adv_city = Advert.objects.filter(city=c)

    adverts = Advert.objects.values('city').distinct()
    return render_to_response('advert_by_city', {'adverts':adverts},{'adv_city':adv_city}, context_instance=RequestContext(request))

テンプレート:

{% for city in adverts %}
    <a href="city?{{ city.city }}"/>{{city.city}}</a>
<br/>
{% endfor %}

{% for adverts in adv_city%}
    {{adverts.title}}
{% endfor%}

モデル:

class Advert(models.Model):

    title = models.CharField(max_length=255)
    city = models.CharField(max_length=255)

修正方法は?

4

2 に答える 2

1

がfalse に評価されるadv_city場合に備えて、デフォルト値を指定する必要があります。cたとえば、あなたのケースでは空のリストが機能する可能性があります。

c = request.GET.get('city', '')
adv_city = Advert.objects.filter(city=c) if c else []

これを行わずにcfalse (ご存知かもしれませんが、Python は空の文字列を false として扱います) の場合、adv_city変数は割り当てられているとは見なされません。

空の文字列を属性として有効にできる場合は、 を削除して、の任意の値に対してフィルターを実行します。Advertcityifc

于 2012-05-24T05:48:10.263 に答える
1

の値をログに記録する必要がありますc。コードが 内のコードに到達していないと思いますifrequest.GET.get('city','')if

于 2012-05-24T05:48:25.437 に答える