Django如何将数据传递给超链接?

时间:2014-11-18 17:54:22

标签: html django templates hyperlink

我的模板

<div class="row">
<div class="col-lg-9">
    <table class="table table-bordered">
        <thead>
            <tr>
                <th>Title</th>
                <th>Publication date</th>
                <th>Delete</th>
            </tr>
        </thead>
        <tbody>
            {% for questionnaire in questionnaires %}
                <tr>
                    <td>
                        <div class="checkbox">
                            <input type="checkbox" name="questionnaires" id="questionnaires" value="{{ questionnaire.id }}">
                            <label><b><a href="" >{{ questionnaire.name }}</a></b></label>
                        </div>
                    </td>
                    <td>{{ questionnaire.pub_date }}</td>
                    <td><a href="" class="btn btn-danger btn-xs">Delete</a></td>
                </tr>
            {% endfor %}
        </tbody>
    </table>
</div>

<div class="col-lg-3">
        <div class="sidebar-nav-fixed pull-right">
            <div class="well">
                <ul class="nav ">
                    <li>
                        <a href="/admin/teacher/questionnaires/add/" class="btn btn-info btn-md">Add new</a>
                    </li>
                    <li>
                        <a href="#" class="btn btn-default btn-md" name="single">Export to PDF</a>
                    </li>
                    <li>
                        <a href="#" class="btn btn-default btn-md" name="single">Check results</a>
                    </li>
                    <li>
                        <a href="#" class="btn btn-default btn-md" name="single">Draw charts</a>
                    </li>
                    <li>
                        <a href="#" class="btn btn-default btn-md">Generate tokens</a>
                    </li>
                    <li>
                        <a href="#" class="btn btn-default btn-md">Clear results</a>
                    </li>
                    <li>
                        <a href="" class="btn btn-danger btn-md">Delete selected</a>
                    </li>
                </ul>
            </div>
        </div>
</div>

我需要从表格中放置的复选框中获取所有选中的对象,并将它们传递给导航栏中的超链接。

例如,我有超链接“删除已选中”。我想删除通过点击该链接选择的每个问卷。可能吗?如果是,我该怎么做?

1 个答案:

答案 0 :(得分:0)

为了实现,'我有超链接'删除已选中“。我想删除通过点击该链接选择的每个问卷。',它需要混合使用jQuery和Django。

您应该在“删除所选”按钮上附加一个点击监听器,该按钮应序列化所有选定的问卷并通过AJAX将该数据发送到Django视图,该视图将从数据库中删除必要的问卷对象。

这是一个粗略的例子......

<script type="text/javascript">
    $(document).ready(function() {
        $('.btn-danger').click(function() {
            $.post('url/to/django/view', $('input[name=questionnaires]').serialize(), function(data, textStatus, jqXHR) {
                // DO STUFF VIA THIS CALLBACK
            });
        });
    });
</script>

def url/to/django/view(self, request):
    if request.method == 'POST':
        questionnaires_to_delete = request.POST.getlist('questionnaires')
        Questionnaire.objects.filter(id__in=questionnaires_to_delete).delete()
        return HttpResponse('WHATEVER YOU WANT TO RETURN TO THE CLIENT')

根据您的设置,您会遇到CSRF问题。以下是处理该文件的文件...... https://docs.djangoproject.com/en/1.7/ref/contrib/csrf/