首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Django REST框架中没有获取更新记录的记录列表..?

在Django REST框架中没有获取更新记录的记录列表..?
EN

Stack Overflow用户
提问于 2014-12-01 21:57:22
回答 1查看 782关注 0票数 2

在Django REST Framework中,数据库表记录的列表直到API重新启动或python文件中的任何代码更改(如模型、序列化程序或视图)才会更新。我尝试过事务提交,但没有成功。以下是我的看法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class ServiceViewSet(viewsets.ModelViewSet):
    #authentication_classes = APIAuthentication,
    queryset = Service.objects.all()
    serializer_class = ServiceSerializer
    def get_queryset(self):
        queryset = self.queryset
        parent_id = self.request.QUERY_PARAMS.get('parent_id', None)
        if parent_id is not None:
           queryset = queryset.filter(parent_id=parent_id)
        return queryset   
    # Make Service readable only
    def update(self, request, *args, **kwargs): 
        return Response(status=status.HTTP_400_BAD_REQUEST)    
    def destroy(self, request, *args, **kwargs):
        return Response(status=status.HTTP_400_BAD_REQUEST)

序列化程序如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class ServiceSerializer(serializers.ModelSerializer): 

    class Meta:
        model = Service
        fields = ('id', 'category_name', 'parent_id')
        read_only_fields = ('category_name', 'parent_id')

模型是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Service(models.Model):
    class Meta:
        db_table = 'service_category'
        app_label = 'api'
    category_name = models.CharField(max_length=100)
    parent_id = models.IntegerField(default=0)
    def __unicode__(self): 
        return  '{"id":%d,"category_name":"%s"}' %(self.id,self.category_name)

只有在这个服务中才会出现这个问题,其余的API都能很好地工作。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-02 05:03:37

因为您正在self.queryset上设置queryset (这是一个类属性),所以它将被缓存。这就是为什么您没有为每个请求获得更新的查询集,这也是为什么Django REST框架get_queryset。通过调用查询集上的.all(),它将不再使用缓存的结果,并强制进行新的计算,这就是您要寻找的结果。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class ServiceViewSet(viewsets.ModelViewSet):
    queryset = Service.objects.all()

    def get_queryset(self):
        queryset = self.queryset.all()
        parent_id = self.request.QUERY_PARAMS.get('parent_id', None)

        if parent_id is not None:
           queryset = queryset.filter(parent_id=parent_id)

        return queryset
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27242811

复制
相关文章
通过 Drone Rest API 获取构建记录日志
Drone是一款CICD工具,提供rest API,简单介绍下如何使用API 获取构建日志。
JadePeng
2020/02/18
1.2K0
更新的同时获取被更新的记录的id
更新的同时获取被更新的记录的id 一般我的写法是 select auto_id into v_id from history where state=1 and rownum=1; update history set state=0 where auto_id=v_id 能不能把两条语句合成一条写呀 可以了 UPDATE BIZ_WORKFLOW SET SEND_MARK=1 WHERE AUTO_ID=ID RETURN AUTO_ID INTO ID ;
阿新
2018/04/12
1.7K0
Django 中如何优雅的记录日志
日志是个好东西,但却并不是所有人都愿意记,直到出了问题才追悔莫及,长叹一声,当初要是记日志就好了。
AlwaysBeta
2020/11/11
1.9K0
Django学习记录
创建:app01 执行 python manage.py startapp app01 在setting中奖app01应用加入INSTALL_APPS选项中
懿曲折扇情
2022/08/24
3810
发现和记录 REST API
/api/mgmnt 服务包括可用于发现 REST 服务类和启用 REST 的 Web 应用程序的调用。
用户7741497
2022/08/05
7160
FreeOpenWrite 更新记录
FreeOpenWrite 项目地址 gitee : https://gitee.com/msandrew/free-open-write github: https://github.com/AndrewAndrea/FreeOpenWrite 2021.3.8 更新 增加又拍云图床 修复上传图片失败的问题 完善逻辑,修复获取用户图床信息失败的问题 2021.3.5 更新 修复图床新增的错误 2021.3.4 更新 增加分发数据的高级筛选功能 修复获取文章已发布平台名的错误 修复一键发布功能,发布成功,提
andrew_a
2021/03/09
6940
FreeOpenWrite 更新记录
从记录获取
Record.FieldCount(record as record) as number
逍遥之
2020/03/23
1.1K0
[cloc]在Windows中配置cloc的记录
https://github.com/AlDanial/cloc/releases
逝水经年
2022/03/14
2.9K0
记录GOPATH在GOLAND中的坑
这里的GOPATH已经出错了,所以编译找不到,我检查了go env也是正确的GOPATH....
超蛋lhy
2018/08/31
1.8K0
记录GOPATH在GOLAND中的坑
SQL Union 语句获取 好友消息列表,最新聊天记录的获取展示
背景 最近在自己的后台项目中 为了方便展示好友消息列表数据 发现,对于最新聊天记录的获取还挺麻烦的 用到了至少我这几乎没用过的 UNION 语句,在此整理一番 … 首先,鄙人的对话记录表设计字段如下: 各字段意义一目了然,可作为参考 整理得到的 SQL语句,使用时可替换其中的 当前用户ID 即可 为了便于阅读,缩进如下: SELECT count(is_read = 0 or null) AS count_no_read,friend_id,uni_table.content,l
泥豆芽儿 MT
2021/09/06
1.4K0
Wordpess REST API 错误排查记录
在WP Statistics数据总览中,出现警告提示,但WP Statistics功能正常。
sean.liu
2022/09/29
2.2K0
Wordpess REST API 错误排查记录
PureBlue 主题更新记录
修复文章目录过长覆盖 footer 的问题 本来想集成 Alogolia 搜索,无奈问题一个接着一个,只好放弃
Chor
2019/11/08
1K0
在.Net Core中记录日志
一个完善的系统,必然会有非常完善的日志记录,用户的操作、系统的运行状况等信息被完整的记录下来,方便我们对系统进行维护和改进。.net core 也为日志记录提供了内置的支持。
拓荒者IT
2019/09/23
1.3K0
SpringBoot 2.0 更新记录
1、Spring Boot 2.0 要求Java 版本必须8以上 2、配置属性的重定位 Old property New property server.context-path server.servlet.context-path server.context-parameters.* server.servlet.context-parameters.* server.jsp.class-name server.servlet.jsp.class-name server.jsp.init-parame
試毅-思伟
2018/09/06
6310
小程序 - API 踩坑记录(更新中...)
API 小程序API结构导览图: 声明:   请尊重博客园原创精神,转载或使用图片请注明:   博主:xing.org1^   出处:http://www.cnblogs.com/padding101
xing.org1^
2018/05/17
9800
django-rest-framework框架学习
现在新一代web应用都开始采用前后端分离的方式来进行,淘汰了以前的服务器端渲染的方式。前后端分离方式有许多好处,比如 1、可以前后端并行开发,提高开发效率 2、页面都在客户端进行渲染,提高了渲染速度,减小了服务器的压力 3、一套api提供给多个客户端使用,而且不限制客户端的类型(web,app均可)
earthchen
2020/09/24
1.3K0
Django REST框架 | 封装 Respose 类
可以发现在给客户端返回数据都有固定的格式,比如 json。我们为了减少重复代码,重写Response 类
白墨石
2021/01/12
1.6K0
记录ci框架中定时任务的执行[通俗易懂]
1.控制器中方法的确定,我的控制器/方法:v3/Facesecret/horoscopearticle;确保在Postman中可以成功执行
全栈程序员站长
2022/07/11
1K0
记录ci框架中定时任务的执行[通俗易懂]
三、Django查询表记录
返回与所给筛选条件相匹配的对象,不是queryset类型,是行记录对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。捕获异常try。
Dreamy.TZK
2020/04/09
9450
点击加载更多

相似问题

记录Django Rest框架API

129

Salesforce REST获取更新的记录列表

10

更新Django Rest的记录

17

在Django Rest框架中过滤json记录

32

如何用Django rest框架更新Postgres表中的记录

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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