2016-04-28 74 views
1

我是一個django新手,我正在製作一個小應用程序來記錄夜間收到的工作呼叫。 目前該應用程序工作正常。我做了一個表格來填充調用數據,然後使用通用的ListView將其作爲表格呈現。在基於類的ListView中使用複選框選擇對象

class IndexView(LoginRequiredMixin, generic.ListView): 
    login_url = '/login/' 
    redirect_field_name = 'redirect_to' 
    template_name = 'chiamate/list_full.html' 
    context_name = 'lista_chiamate' 
    def get_queryset(self): 
     return Chiamata.objects.all 

下面是模板的代碼:

{% extends 'chiamate/base.html' %} 

{% block content %} 

{% if user.is_authenticated %} 
    <a href="{% url "chiamate:inserimento chiamata" %}" class="btn btn-success"><i class="fa fa-plus-square-o fa-lg" aria-hidden="true"></i> Nuova Chiamata</a> 
<p></p> 
{% else %} 
    <p>Welcome, Guest please <a href="{% url 'login' %}">[login]</a></p> 
{% endif %} 

    <div class="table-responsive"> 
    <table class="table table-striped"> 
     <form action="{{ action }}" method="post"> 
      {% csrf_token %} 
    {% for chiamata in object_list %} 
     {% if chiamata.data_chiusura.weekday == 4 or chiamata.data_chiusura.weekday == 5 or chiamata.data_chiusura.weekday == 6 %} 
      <tr class="info"> 
     {% elif chiamata.data_chiusura == None %} 
      <tr class="danger"> 
     {% else %} 
      <tr> 
     {% endif %} 
       <td><input class="checkbox" name="chiamata_mail" type="checkbox" id="checkbox_{{ chiamata.id }}"value="{{ chiamata.id }}"></td> 
       <td class="txtdata">{{ chiamata.utente.get_full_name|wordwrap:5 }}</td> 
       <td class="txtdata"><a href="{% url 'chiamate:dettaglio chiamata' chiamata.id %}">{{ chiamata.data_chiamata|date:"l d M Y H:i" }}</a></td> 
       <td>{{ chiamata.interlocutore }}</td> 
       <td>{{ chiamata.testo_chiamata|truncatechars:200 }}</td> 
       <td class="txtdata">{{ chiamata.reperibile|wordwrap:5 }}</td> 
       <td>{{ chiamata.data_chiusura|date:"H:i" }}</td> 
       <td><a href="{% url 'chiamate:modifica chiamata' pk=chiamata.id %}" class="btn btn-success" ><i class="fa fa-pencil-square-o fa-lg" aria-hidden="true"></i> Edit</a></td> 
       <td><a href="{% url 'chiamate:cancella chiamata' pk=chiamata.id %}" class="btn btn-danger"><i class="fa fa-trash-o fa-lg" aria-hidden="true"></i> Delete</a></td> 
      </tr> 
     {% endfor %} 
     <input id="send_selected" type="submit" value="Send" /> 
    </form> 
    </table> 
    </dv> 
{% endblock %} 

我已經嘗試過在這裏添加的複選框。當我這樣做時,他們會顯示在頁面上,但是當我按下發送按鈕(當前以表單發送實現,但我想使用引導按鈕)時,我不知道如何將對象傳遞給電子郵件功能,或者至少在新頁面中顯示它們。

回答

0

你應該定義視圖的post方法:

class IndexView(LoginRequiredMixin, generic.ListView): 

    def post(self, request, *args, **kwargs): 
     return ChiamataUpdateView.as_view()(request) 

和處理上的另一種觀點後的數據。

另外,由於您沒有調用all(),所以您沒有返回查詢集。它應該是: return Chiamata.objects.all()