我是一个django新手,我正在制作一个小应用来记录夜间收到的工作电话。 目前该应用程序正常工作。我已经制作了一个表单来填充调用数据,然后使用通用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 :(得分:1)
您应该定义视图的post
方法:
class IndexView(LoginRequiredMixin, generic.ListView):
def post(self, request, *args, **kwargs):
return ChiamataUpdateView.as_view()(request)
并在另一个视图上处理帖子数据。
此外,由于您未调用get_queryset
,因此all()
未返回查询集。它应该是:
return Chiamata.objects.all()