Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AttributeError: WSGIRequest对象没有属性“is_ajax”

AttributeError: WSGIRequest对象没有属性“is_ajax”
EN

Stack Overflow用户
提问于 2021-12-20 00:59:28
回答 2查看 10.7K关注 0票数 15

我试图在django中学习ajax,但是当我运行这个简单的测试时,我得到了这个错误,我找不到原因,我的django版本是4.0

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AttributeError: 'WSGIRequest' object has no attribute 'is_ajax'

view.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.shortcuts import render, HttpResponse
def home(request):
    return render(request,'myapp/index.html')

def ajax_test(request):
    if request.is_ajax():
        message = "This is ajax"
    else:
        message = "Not ajax"
    return HttpResponse(message)

urls.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
urlpatterns = [
    path('',views.home,name='home'),
    path('ajax_test/', views.ajax_test, name='ajax_test')
]

index.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button id="btn">click me!</button>
   

<script>
  $("#btn").click(function () {
    $.ajax({
      type: "GET",
      url: "{% url 'ajax_test' %}",

      success: function () {
        console.log("done");
      },
      error: function () {
        console.log("error");
      },
    });
  });
</script>
EN

回答 2

Stack Overflow用户

发布于 2022-03-13 05:08:25

完成基于答案的3.1发行说明

request.is_ajax()完全可以被复制成request.headers.get('x-requested-with') == 'XMLHttpRequest'

request对象由Django使用,类似于请求。当客户端使用带有x-requested-with的特定标头XMLHttpRequest集时,可以标识AJAX请求。

票数 8
EN

Stack Overflow用户

发布于 2022-06-26 05:31:17

这个方法不应该被删除,因为jQuery是最被低估的库,在许多现代教程中仍然存在。希望有一天他们能把它带回来。

对于django的相同版本,我觉得很奇怪,在服务器部署之后,报告了这个错误,但在本地机器中从来没有。

如果您已经在您的项目中实现了is_ajax is_ajax ,并且在很大程度上限定了它的作用域,下面是一种将is_ajax实现到每个请求的方法

  1. 在你的任何一个应用程序中创建一个middlewares.py,在我的例子中,common应用程序。(不管您在哪个应用程序中添加了这个功能,中间件都是全局调用的包装函数,用于在视图之前或之后执行操作)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class AjaxMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        def is_ajax(self):
            return request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest'
        
        request.is_ajax = is_ajax.__get__(request)
        response = self.get_response(request)
        return response

这将在视图接收到每个请求之前对其定义一个is_ajax方法。

  1. settings.py中插入这个
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MIDDLEWARE = [
    'common.middleware.AjaxMiddleware', 
]
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70419441

复制
相关文章
【jquery基础】按钮禁用和启用
在html标签中设置按钮被禁用,可以使用如下代码 <input type='button' id='test' value='disabled'> 在jquery中可以使用attr()函数修改按钮的disable属性 $(“#test”).attr(‘disabled',false); jquery 控制button的disabled属性
用户5640963
2019/07/25
4.6K0
Jquery禁用/启用按钮与文本框代码
在jquery中如果要禁止文框与按钮恢复效果我们需要动态设置disabled即可了,如果要设置为只读我们只要设置readonly即可。
botkenni
2022/01/10
2.3K0
IQKeyboardManager 启用/禁用
1.在摸个界面完全禁用IQKeyboard - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; //TODO: 页面appear 禁用 [[IQKeyboardManager sharedManager] setEnable:NO]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:anim
developerbfl
2018/06/05
2.5K0
Vbs 禁用启用网卡
在实际工作中,经常碰到需要通过脚本启用禁用网卡的情况,在网上找了一个脚本,实际是通过模拟键盘操作来启用禁用,但对于多种系统和比较复杂的情况操作性不好。
力哥聊运维与云计算
2019/06/28
2K0
Spring boot with Schedule (启用/禁用)
本文节选自《Netkiller Java 手札》 5.19.4. 计划任务控制 matchIfMissing = true, 如果改属性条目不存在返回 true @ConditionalOnProperty("batch.metrics.export.influxdb.enabled") # mybean.enabled = true @ConditionalOnProperty(value='mybean.enabled') @ConditionalOnProperty(value = "endp
netkiller old
2018/03/05
2.8K0
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
指定元素中包含 id 属性的, 如: $("span[id]")  代码如下: <span id="span1" name="S1">AAA</span><br/>  <span id="span2" name="S2">BBB</span><br/>  <span name="Sx3">CCC</span><br/>  <span name="Sx4">DDD</span><br/>  <div id="div1" name="Dx1">EEE</div>  <div name="D2">FFF</div
hbbliyong
2018/03/06
1.6K0
jquery 表单验证
("form :input.required").each(function(){
用户5760343
2019/10/10
3.6K0
jquery 表单验证
jquery 表单事件
.blur()    当元素失去焦点的时候触发事件。   .blur(handler(eventObject))     handler(eventObject)       每当事件触发时候执行的函数。   .blur([eventData],handler(eventObject))     eventData       一个对象,它包含的数据键值对映射将被传递给事件处理程序。     handler(eventObject)       每当事件
用户1197315
2018/01/19
1.5K0
Linux 中如何启用和禁用网卡?
当你添加一个网卡或者从一个物理网卡创建出一个虚拟网卡的时候,你可能需要使用这些命令将新网卡启用起来。另外,如果你对网卡做了某些修改或者网卡本身没有启用,那么你也需要使用以下的某个命令将网卡启用起来。
用户4988085
2021/09/14
18.6K0
jquery根据属性选择
有信仰的人不会孤独。——阿列克谢耶维奇 分享一个jquery选择器的小技巧 我们可以通过自定义属性键值选中一个元素 例如如下元素: <div ruben="vampire">阿超</div> 然后我们通过ruben=vampire选中这个div 就可以如下写法: let vampire = $('div[ruben="vampire"]') 我们可以简单测试一下输出里面的内容 <div ruben="vampire">阿超</div> <script type="text/javascript">
阿超
2022/08/17
1.9K0
jquery根据属性选择
JQuery表格表单操作
1、多选框应用代码示例 <form action=”#” method=”post”> 你喜欢的明星是?<br /> <input type=”checkbox” name=”boxs” value=”张嘉译” id=”1″ /><label for=”1″>张嘉译</label> <input type=”checkbox” name=”boxs” value=”周润发” id=”2″ /><label for=”2″>周润发</label> <input type=”checkbox” name=”bo
苦咖啡
2018/05/07
1.5K0
bootstrapValidator 中文API
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
颍川
2019/11/21
13.2K1
jquery 操作表单表格
$("tr:contains('王五')").addClass("selected")
用户5760343
2019/10/08
1.5K0
jquery 操作表单表格
Jquery 异步提交表单
前台部分代码: <div id='error'></div><!--错误提示信息--> <input type='text' id='username' name='username' readonly='Readonly'/><!--readonly为只读--> <input type='password' id='password' name='password'> <input type='text' id='company' name='company'> <input type='text'
用户1503405
2021/09/23
3K0
JQuery 学习—JQuery Validation表单验证范例[通俗易懂]
jQuery Validato表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。你可以划分多个校验组,每个组的校验都是互不影响。对一个表单对象,你只需要写一行代码就可以轻松实现无数种(理论上)脚本控制。
全栈程序员站长
2022/07/19
1.8K0
Element 根据描述展示表单
假如数据格式如下: formData: [ { title: "气密性测试", param: [ { mode: "检查方式1", way: "单选", required: "Y", content: ["检漏仪", "u形管"], value: "检漏仪"
一只图雀
2020/09/21
9190
Oracle 启用被禁用的外键
在Oracle中,面对已经被禁用的外键,我们该如何将它重新启用呢?本教程就为大家带来Oracle外键启用方法。
用户8965210
2021/09/02
8280
PHP过滤表单字段
从post来的进行addslashes后就可存入数据库了,取出后直接echo即可 普通的文本: 1.htmlspecialchars接着addslashes存入数据库,取出后直接echo即可。 2.addslashes存入数据库,取出后htmlspecialchars输出。 说明: addslashes仅仅是为了让原来的字符正确地进入数据库。 htmlspecialchars是吧html标签转化掉。
黄啊码
2020/05/29
3.1K0
用jquery实现表单验证_jquery验证插件
功能强大的 jQuery 表单验证插件,适用于日常的 E-mail、电话号码、网址等验证及 Ajax 验证,除自身拥有丰富的验证规则外,还可以添加自定义的验证规则。
全栈程序员站长
2022/11/09
4.3K0
点击加载更多

相似问题

jQuery Ajax文件上传formData

12

基于Laravel后端的资源+ FormData文件上传

10

用jquery和FormData上传文件

12

jquery文件上传formData输入名称

13

在Express中访问文件上传formData

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文