0

検索結果を別の html ファイルに表示したい。次のようなテンプレートがあります。

<html>
    <head></head>
    <body>
        <div id="div1">
            {% for i in var1 %}
                {{i.name}}<br>
            {% endfor %}
        </div>
        <form action="searchresult.html" method="post">{% csrf_token %}
            <input type="text" name="search1">
            <input type="submit" id="click1" value="search">
        </form>
    </body>
</html>

ビュー.py

def search(request):
    var = ""
    if request.method=='POST':
        s1  = request.POST.get("search1")
        var = form1.objects.all().filter(keyskills=s1)
    return render(request,"search.html",{'var1':var})

models.py

class form1(models.Model):
    name          = models.CharField(max_length=20)
    qualification = models.CharField(max_length=20)
    keyskills     = models.CharField(max_length=50)

    def __unicode__(self):
        return self.name,self.qualification,self.keyskills

私の結果では、同じページに検索の詳細が表示されます。代わりに に表示したいsearchresult.htmlsearchresult.htmlform タグの in action を書きました。あなたの提案を教えてください。

4

3 に答える 3

0

呼び出されるdjangoメソッドではなく、フォームActionがHtmlファイルを表しているようです。

基本的に行うことは次のとおりです。

1) POST 操作を含むフォームがあり、送信中に「アクション」タグで言及したメソッドが呼び出されます。

2) POST データを処理したら、searchresult.html にリダイレクトします。

お役に立てれば。

于 2013-11-14T07:26:22.627 に答える
0
  1. フォームの属性を、メソッドactionにマップされている URL に変更します。search

  2. あなたのsearch方法で; searchresult.htmlテンプレートを返します: return render(request, 'searchresult.html', {'var1': var1 }).

  3. テンプレートで、searchresult.html次を追加します。

    {% for i in var1 %}
        {{i.name}}<br>
    {% endfor %}
    
于 2013-11-14T07:38:03.293 に答える
0

アクションを次のように変更します

<form action="{% url your_project_name.your_app_name.views.search %}" method="post">

urls.py コンテンツを投稿していただけると助かります。

于 2013-11-14T07:48:40.447 に答える