python - “UpdateQuery”对象没有属性“get_field”错误
问题描述
我下面的代码有问题吗?目的是当用户更新场地时,链接到场地的所有事件都被标记为已修改。我得到的错误是
“'UpdateQuery' 对象没有属性 'get_field' 错误”。
真正奇怪的是,我相信该代码在一个月前已经过测试并可以正常工作,但它突然停止工作。
我的代码:
def save(self, *args, **kwargs):
super(Venue, self).save(*args, **kwargs) # Call the "real" save() method.
Event.objects.all().filter(venue=self).update(modified=timezone.now())
在 subqueries.py 中抛出此错误:
def add_update_values(self, values):
"""
Convert a dictionary of field name to value mappings into an update
query. This is the entry point for the public update() method on
querysets.
"""
values_seq = []
for name, val in six.iteritems(values):
field = self.get_field(name)
解决方案
我不断收到上述错误,但这种解决方法是手动迭代相关字段并为每个有效的字段调用 save。在这种情况下,修改后的属性是自动更新的,所以我只需要调用 save 即可。出于同样的原因,我可以更改我想要的任何字段,然后调用 save,它也应该可以工作。(这并不理想,但它解决了我的问题)
related_events = Event.objects.filter(venue=self)
for event in related_events: # Trigger an update on related events. This will bump the modified timestamp
# Modify the event here
event.save()
推荐阅读
- excel - 我想创建一个 Excel 宏文件来帮助我加快基本计算速度并进行练习
- python - 基于Python中列的部分匹配匹配和合并2个数据框
- ruby-on-rails - 可以在 Ruby 中覆盖会话吗?
- python - 如何在 Python 中修复“TypeError:MOVE() 采用 0 个位置参数但给出了 1 个”
- java - WebDriver 和 ChromeDriver:无法修复 org/json/JSONException 错误
- python - 如何设置 pip 环境路径?
- three.js - 在three.js中制作突破游戏 - 检测棋盘的末端
- python-3.x - 在 google colab 中创建两个新目录并加入它们
- momentjs - 如何添加两个 hh:mm:ss 格式并得到 hh:mm:ss
- nginx - 如何减少 Nginx 中 error.log 的大小?