【问题标题】:Django take value from urlDjango 从 url 取值
【发布时间】:2020-08-17 16:58:30
【问题描述】:

我从 url (?site=value) 获取值有问题。当我在 views.py 中有函数时,它可以工作,但现在我将它移到另一个文件中。有人能解决这个问题吗?

functionAjax.py:

def htmlMain(request):
    if request.is_ajax and request.method == "POST":
        UrlCut = request.GET.get('site','Main')
        Messages = NewsMessage.objects.all().order_by('-Data').values()
        context = {
            "Messags" : Messages
        }
        return render(request, 'ajax'+UrlCut+'.html', context)


AjaxFunction.js:

$.urlParam = function(name){
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (results==null){
        return null;
     }
     else{
        return results[1] || 0;
     }
}

let tech = ""
if($.urlParam('site') != null)
{
    tech = "?site=" + $.urlParam('site');
}

UrlSet = "/get/ajax/validate/MainSite"+tech;
$.ajax({                                                                                                                           
    url: UrlSet,
    data: $('#FormSite').serialize(), 
    type: "POST",
    async:false,
    success: function(response) {
        $("#AjaxChange").replaceWith(response);
    },
    error: function(data)
    {
        alert('Bad connection');
        console.log(data);
    }

});

【问题讨论】:

  • 究竟是什么不起作用?您收到的错误信息是什么?你看到的行为是什么?您期望的行为是什么?
  • 错字:request.is_ajax -> request.is_ajax().
  • request.GET 的值是多少? print(request.GET) 的输出是什么?
  • 我总是获得默认值 - 'Main'。我认为它找不到“网站”。 request.GET['site'] 不起作用,因为 ajax 返回失败。
  • 你的网址查询字符串是?Site=value,还是?site=value

标签: python django ajax methods get


【解决方案1】:

使用 'Site' 而不是 'site' 来获取 Site=value

UrlCut = request.GET.get('Site', 'Main')

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2019-02-19
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 2020-08-24
    • 2020-05-22
    相关资源
    最近更新 更多