Queryset inside et ouside 一个函数
Posted
技术标签:
【中文标题】Queryset inside et ouside 一个函数【英文标题】:Queryset inside et ouside a function 【发布时间】:2017-07-11 03:39:30 【问题描述】:假设,在数据库中,withdrawal=12
。如果在函数中定义了一个查询集,例如OBJECT.objects.get(withdrawal=17)
,我说得对吗,如果我不保存在函数中,则撤回=17,一旦我退出函数,撤回再次变为等于 12?
谢谢!
【问题讨论】:
你的问题很不清楚,如果数据库中提款的值为12,那么你显然无法获得值为17的值, 【参考方案1】:OBJECT.objects.get(withdrawal=17)
是一个查询,不会更改存储在数据库中的数据。如果恰好有一个,它将只返回一个OBJECT
类型的实例,否则会引发错误。
如果您想获取所有类型为 OBJECT 且 withdrawal
设置为 17
的实例,请使用:
OBJECT.objects.filter(withdrawal=17)
如果您想修改所有具有withdrawal
或12
的实例以具有新值17
,请使用:
OBJECT.objects.filter(withdrawal=12).update(withdrawal=17)
见https://docs.djangoproject.com/en/1.10/ref/models/querysets/#update
如果您想了解有关允许更复杂查询和修改的函数和表达式的更多信息,请查看 Django 文档的这一部分:https://docs.djangoproject.com/en/1.10/ref/models/expressions/
【讨论】:
以上是关于Queryset inside et ouside 一个函数的主要内容,如果未能解决你的问题,请参考以下文章
使用 get_queryset 在 CreateView 中过滤模型
无法在没有 `.queryset` 属性或覆盖 `.get_queryset()` 方法的视图上应用 DjangoModelPermissions