2017-05-27 8 views
-1

我想做成這樣的: https://morelab.deusto.es/publications/ 類似於該頁面的高級搜索,但我不知道如何創建'導航頁面'。 我使用Django 1.10.5,Python 3.6和MongoDB與Pymongo。我只是想點擊並打開表單,具體取決於我點擊的位置。 我嘗試:與Django,Python和MongoDB在同一頁導航

< --html - >

<form class="form-search" action="http://127.0.0.1:8000/views/delete" method="post" role="form"> 
     <input type="hidden" name="csrfmiddlewaretoken" value="NQ7BUfEYmU7i1wcsAlkjEGfSrbHYYmxAe9tOJl2lvrbE0xgBPLhadk1l29r4SK91"> 

     <div id="search-text" class="input-group"> 
      <input class="form-control" id="id_text" maxlength="50" name="text" placeholder="Publication title or author name" type="text"> 

      <span class="input-group-btn"> 
       <button class="btn btn-default" type="submit"> 
        <i class="fa fa-search"></i> 
       </button> 
      </span> 
     </div> 

     <div class="btn-group" id="expand-form-panel" role="group"> 
      <button id="expand-form-btn" type="button" class="btn btn-default"> 
       <i class="fa fa-minus"></i> 
      </button> 
     </div> 

     <h2 id="extended-form-title" style="display: block;">Advanced Search</h2> 

     <ul class="nav nav-tabs" id="extended-form-tabs" style="display: block;"> 
      <li class=""><a id="all-tab">All <i class="fa"></i></a></li> 
      <li class="active"><a data-target="#basic-info-tab" data-toggle="tab">Basic Information <i class="fa"></i></a></li> 
     </ul> 
     <div id="extended-form" class="form-horizontal" style="display: block;"> 

      <div class="tab-content"> 
       <div class="tab-pane active" id="basic-info-tab">      
        {% csrf_token %} 
        <input name="id" value="{{id}}"> 
        <p>Are you sure you want to delete this post?</p> 
        <input type="submit" value="Delete"> 
       </div> 
      </div> 
     </div> 
    </form> 

< --views - >

def delete(request):  
id = request.POST.get('id', False) 
if request.method == 'POST': 
    informe = Informes.objects(id=id)[0] 
    informe.delete() 
    template = 'blog/index.html' 
    params = {'Informes': Informes.objects} 
elif request.method == 'GET': 
    template = 'blog/delete.html' 
    params = { 'id': id } 
return render(request, template, params) 

< --url - >

url(r'^views/delete$', views.delete) 
+0

任何嘗試,直到現在? – mohammad

+0

是的,我已經嘗試更新帖子 – Ana

回答

0

我已經看過你給出的頁面作爲例子,我可以給出一些指示他們正在使用什麼以及如何完成它。

該頁面正在使用django分頁程序包(django.core.paginator =>https://docs.djangoproject.com/en/1.11/topics/pagination/)進行分頁。

搜索欄最有可能使用solr,我建議您閱讀相關文檔以解決您的問題。它很容易使用和實施!

它沒有使用JavaScript,因爲這個問題的其他答案已經提到,因爲它沒有實時重新載入搜索結果(意味着它沒有使用諸如AJAX或Angular之類的東西)。

現在,將所有需要的代碼放在這一個答案中會有點太過分了。 但我可以推薦一本非常好的書,它使用您需要的所有功能。

該書通過示例(https://www.packtpub.com/web-development/django-example)被稱爲Django,通過閱讀它,您可以構建5個或6個項目,這些項目都使用了許多有趣的技術,您稍後可以在自己的項目中使用這些技術。

我強烈建議您閱讀該書並從此開始!