0

テンプレート:

<form method="POST" action="/Bycategory/">
<input type="radio" name="andor1" value=1 checked>
<input type="radio" name="andor1" value=2>
<select id="pathology_id" name="pathology_id">
    {% for pathology in pathology_list %}
        <option value="{{ pathology.id }}">{{ pathology.pathology }}</option>
    {% endfor %}
</select>

実際には 3 つの検索選択 (病理学、商品、技術) があります。ユーザーは、3 つの組み合わせまたは一致に対して and/or を実行できます。これが、views.py で and/or オプションが必要な理由です。

views.py:

def Bypub(request):
    andor1 = request.POST['andor1']
    pathology_id = request.POST['pathology_id']
    p = get_object_or_404(Pathology, pk=pathology_id)
    pub1=Publication.objects.exclude(pathpubcombo__pathology__id= 1).filter(pathpubcombo__pathology=p)
    list=[]
    andlist=[]
    for publication in pub1:
        if andor1 == 1:
            if publication not in list:
                list.append(publication)
        if andor1 == 2:
            if publication in list:
                andlist.append(publication)
                #list=andlist
    return render_to_response('search/categories.html', {
        'andor1' : andor1,
        'pub1': pub1,
        'pathology': p,
        'list' : list,
        'andlist' : andlist,
    },
        context_instance=RequestContext(request)
    )

すべてのコードがエラーなしで動作することはわかっていますが、(if andor1 ==1:) と (if andor1 ==2:) の行は無視されています。andor1 の値は、使用している時点では表示されないのではないかと思います。次のテンプレートに値として表示されるため、実際には render_to_response が返されるまでレンダリングされないと思います。そうしないと、テンプレートの if andor1 ==1: で何らかの応答が表示されます。助言がありますか?

4

3 に答える 3

0

ありがとう!引用符は機能しました。私の考えは、値が数値であり、引用符を必要としないという事実に固執していたので、試しませんでした.

于 2009-03-09T17:02:27.180 に答える
0

dpaste コード: http://dpaste.com/10899/

于 2009-03-09T16:39:06.520 に答える