【问题标题】:Django how can I pass data to hyperlink?Django如何将数据传递给超链接?
【发布时间】:2014-11-18 17:54:21
【问题描述】:

我的模板

<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>

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

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

【问题讨论】:

标签: html django templates hyperlink


【解决方案1】:

为了实现,'我有超链接“删除选择”。我想删除通过单击该链接选择的所有调查问卷。',这将需要 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/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多