微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何从 jQuery 数据表调用 django 视图?

如何解决我如何从 jQuery 数据表调用 django 视图?

我正在使用数据表,并且正在尝试添加一些带有操作的按钮。我想调用 django 视图函数,但我不确定如何在 jQuery Datatables 中实现这一点。当我有 Django 模板时,很明显我可以说

<a href="{% url 'Feedback:useredit' user.id %}" class="btn text-secondary px"-0>
                                            <i class="far fa-edit fa-lg"></i>

这将我重定向到 Django 中的“useredit”视图功能。但是,如果没有 django 模板和 jQuery 的数据表内部,这将不起作用。你们能给我一些提示如何实现这一目标吗?

             $(document).ready(function() {
                 var data;
                 fetch("http://192.168.2.85:8000/fetchapi/")
                    .then(response => response.json())
                    .then(json => data = json)
                    .then(() => {console.log(data);
                        $('#datatable').DataTable( {
                        data:           data.employees,deferRender:    true,scrollY:        false,scrollX:        false,scrollCollapse: true,scroller:       true,"columns": [
                            { data: "id" },{ data: "first_name" },{ data: "last_name" },{ data: "email" },{ "data" : null,render: function ( data,type,row ) {
                                    return '<button class="btn-view" type="button">Edit</button>';
                                } },row ) {
                                    return '<i class="fa fa-plus-circle" aria-hidden="true"></i>';
                                } },],"order": [[1,'asc']]

                    } )
                    
                })
                } ); 

这是整个 jQuery 代码,但我想我需要在这部分实现 url 到我的 django 视图:

                            { "data" : null,row ) {
                                return '<button class="btn-view" type="button">Edit</button>';
                            } },row ) {
                                return '<i class="fa fa-plus-circle" aria-hidden="true"></i>';
                            } },

我希望我的问题是可以理解和清楚的,非常感谢花时间!

解决方法

在我看来,这是一个快速解决方案。 您可以将您的网址定义为变量:

var url = "{% url 'feedback:useredit' -999 %}";

并且您可以将 -999 替换为您讨厌的 id

var desired_url = url.replace("-999","1");
// or
var href_title = "<a href='" + "{% url 'feedback:useredit' -999 %}".replace("-999",data.id) +"'>" + data.text + "</a>";

当然最好在您的后端方法(视图)中生成它。

from django.http import JsonResponse

def datatable_json(request):
    ... Your code here ...
    data["useredit_url"] = reverse("feedback:useredit",args=[user.id])
    return JsonResponse(data) 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。