如何使用Django模板动态地使用ajaxurl?

2024-10-03 23:28:06 发布

您现在位置:Python中文网/ 问答频道 /正文

类似于相同的问题但无法解决-->;Send Dynamic AJAX URL in Django

我想通过使用动态url来提取数据。在

在网址.py在

url(r'^(?P<idx>\d+)/rapor/$',ReportView.as_view(),name='rapor'),
url(r'^(?P<idx>\d+)/rapor/hamveri/$',ChartData.as_view(),name='hamveri'),

在报告.html在

^{pr2}$

很好的数据发送到网址,但我不能从这个网址提取数据

http://127.0.0.1:8000/analiz/33/rapor/

我怎样才能解决这个问题?在

如果我编辑报告.html在

在报告.html在

var endpoint ='/analiz/33/rapor/hamveri/';

完美运行的网站,它可以从'analiz/33/rapor/hamveri/'中提取数据

等等; http://127.0.0.1:8000/analiz/33/rapor/

但不是动态的url:(

提前谢谢你的帮助。在


Tags: 数据namegtviewhttpurlhtmlas
2条回答

你可以试试:

在JavaScript开始之前编写这个HTML。 然后更改变量:

var端点='/analiz/{数据.id}}/rapor/hamveri/';如下所述

有点像这样:

<div id="endpoint-url-div" url="{% url 'hamveri' data.id %}" style="display: none;"></div>
<script type="text/javascript">
    var endpoint = document.getElementById('endpoint-url-div').getAttribute('url');
    //Now endpoint should have a URL like **/analiz/33/rapor/hamveri/**
    //Add the rest of your JavaScript as it is. 
    var defaultData = [];
    var labels = [];

     $.ajax({
         method: "GET",
         url: endpoint,
         success: function(data){
                  labels = data.labels;
                  defaultData = data.default;
                  setChart()
              },
         error: function(error_data){
                   console.log("error");
                   console.log(error_data)
             },
        });
    </script>

确保从视图中正确发送变量。确保视图中的上下文字典中有一个变量。

在视图.py必须有类似的东西:

^{pr2}$

编辑:

正如我在你的分析中看到的/视图.py,您不会向您的报告.html. 在

不发送idx模型数据对象到报告.html不会在变量endpoint内提供一个url,比如:/analiz/33/rapor/hamveri/。在

在视图中,必须发送一个模型对象

class ReportView(View):
def get(self, request, *args, **kwargs):
    data = UploadFile.objects.get(...) #Get the model object here. Put something like:  user = request.user
    context = {'data' : data}
    return render(request, 'analiz/rapor.html', context)

现在在您的HTML中:

<div id="endpoint-url-div" url="{% url 'hamveri' data.id %}" style="display: none;"></div>
<script type="text/javascript">
    var endpoint = document.getElementById('endpoint-url-div').getAttribute('url');
    ...
    ...
    ... #Rest of the Javascript# ...
    ...
</script>

是的,干得好

我在关键时刻犯了错误。在

@shivamsharma说您没有向您的报告.html. 在

所以这个函数:

class ReportView(View):
def get(self, request,idx,*args, **kwargs):
    return render(request, 'analiz/rapor.html', {'dataninidx':idx}) # added new key

然后我改变变量报告.html在

^{pr2}$

是的,这个程序只有两个改动。在

谢谢你的帮助,@shivam sharma

相关问题 更多 >