2017-09-26 4 views
1

の間のdjangoの転送変数こんにちは、私は検索エンジンを作成しようとしており、私はテーブルidをリンクにとどまらせる必要があります。私CrawledTablesでhtmlの

IDを持つすべてのテーブルを持っている...と私はリンクを介してVAR PKにそのIDを渡す必要があります...そして、私はそのPKを取得し、取得するためにPKを使用することを要求する原因テーブル名テーブル名を使用して検索したテーブル内のデータを取得し、それらのテーブル情報の中に検索エンジンを作成します。

エラー:

Reverse for 'table_search' with no arguments not found. 1 pattern(s) tried: [u'search/(?P<pk>\\d+)/$'] 

これはこれはこれは

urlpatterns = [ 
    url(r'^results$', views.search, name='search'), 
    url(r'^$', views.search_form, name='form'), 
    url(r'^(?P<pk>\d+)/$', views.search_form_table, name='table_search'), 
    url(r'^(?P<pk>\d+)/results$', views.search_table, name='table_results'), 
] 

検索/ urls.pyである私のviews.py

def search_form(request): 
    return render(request, 'search/search.html') 


def search(request): 
    if 'q' in request.GET and request.GET['q']: 
     q = request.GET['q'] 
     name = Crawledtables.objects.filter(name__icontains=q) 
     return render(request, 'search/results.html', {'name': name, 'query': q}) 
    else: 
     return HttpResponse('Please submit a search term.') 


def search_form_table(request): 
    return render(request, 'search/search_table.html', {'tbl_nm': table_name}) 


def search_table(request, pk): 
    if 'q' in request.GET and request.GET['q']: 
     q = request.GET['q'] 
     table_name = Crawledtables.objects.get(id=pk) 
     print table_name 
     t = create_model(table_name.name) 
     print t 
     title = t.objects.filter(title__icontains=q) 
     print title 
     return render(request, 'search/results_table.html', {'tbl_name': table_name, 
                  'details': title, 
                  'query': q}) 
    else: 
     return HttpResponse("Please submit a search term!") 

です私search.htmlの

<form action="/search/results" method="GET"> 
    <input type="text" name="q"> 
    <input type="submit" value="Search"> 
</form> 

results.html

<p> You searched for: <strong>{{ query }}</strong></p> 
{% if name %} 
    <p> Found {{ name|length }}</p> 
    <ul> 
     {% for nm in name %} 
      <li><a href="{% url 'search:table_search' %}">{{ nm.name }}</a> {{ nm.date }}</li> 

     {% endfor %} 
    </ul> 
{% else %} 
    <p> No results found</p> 
{% endif %} 

search_table.html

<form action="/search/{{ pk }}/results" method="GET"> 
    <input type="text" name="q"> 
    <input type="submit" value="Search"> 
</form> 

results_table.html

<p> You searched for: <strong>{{ query }}</strong></p> 
{% if details %} 
    <p> Found {{ details|length }}</p> 
    <ul> 
     {% for list in details %} 
      <li> {{ list.title }}</li> 
     {% endfor %} 
    </ul> 
{% else %} 
    <p> No results found</p> 
{% endif %} 
+0

あなたの問題は何ですか? –

+0

* pk *は – Omega

+0

を通過していません私はエラーを投稿するのを忘れました...私はそれをトップに追加しました – Omega

答えて

1

あなたのresults.htmlにはのためにエラーが発生しています。このようにhrefを変更してください。

{% for nm in name %} 
    <li><a href="/search/{{ nm.id }}/">{{ nm.name }}</a> {{ nm.date }}</li> 
{% endfor %} 
関連する問題