我的设置是在 Google App Engine 上运行的 Django-Nonrel
我有一个具有 LessonStep 内联模型\表单的课程模型\表单。连接是通过 LessonStep 中指向 Lesson 的外键。我正在使用save_related
这样,一旦保存了 Lesson 表单以及所有 LessonStep 内联表单,我就可以对内联模型进行一些数据操作。
这是我的代码:
def save_related(self, request, form, formsets, change):
super(LessonAdmin,self).save_related(request, form, formsets, change)
logging.debug("inlines: %d" % (len(form.instance.lessonstep_set.all()),) )
问题是这样的:
假设我的课程表单没有 LessonStep 实例。我通过 Django 管理表单添加一个新表单并保存它,然后调用此函数。接下来发生的事情是该实例确实保存在 DB中,但form.instance.lessonstep_set.all())
返回一个空查询集。日志打印出来为inlines: 0
显然数据就在那里,因为当更新的管理表单出现时,它有新的 LessonStep 实例。
我的问题:
即使数据刚刚通过 保存,查询集为什么返回空super
?有没有更好的方法来访问刚刚保存的模型的已保存内联实例?
更多信息 - 如果我在日志行上放置一个断点并评估查询,我会得到一个返回正确查询集的结果。所以我觉得这与 Django 缓存或查询的上下文有关。