Django queryset返回不正确的数据?
我的设置是一个在谷歌应用程序引擎上运行的Django Nonl 我有一个课程模型\表单,其中包含LessonStep内联模型\表单。连接是通过第一课中指向第一课的外键实现的。 我正在使用Django queryset返回不正确的数据?,django,google-app-engine,django-forms,django-queryset,django-nonrel,Django,Google App Engine,Django Forms,Django Queryset,Django Nonrel,我的设置是一个在谷歌应用程序引擎上运行的Django Nonl 我有一个课程模型\表单,其中包含LessonStep内联模型\表单。连接是通过第一课中指向第一课的外键实现的。 我正在使用save\u related,这样,一旦课程表单与所有LessonStep内联表单一起保存,我就能够对内联模型进行一些数据操作 这是我的代码: def save_related(self, request, form, formsets, change): super(LessonAdmi
save\u related
,这样,一旦课程表单与所有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管理表单添加了一个新的表单并保存它,它反过来调用这个函数。接下来发生的事情是,实例确实保存在数据库中,但是form.instance.lessonstep\u set.all())
返回一个空查询集。日志打印显示为内联线:0
显然,数据就在那里,因为当更新的管理表单出现时,它有一个新的LessonStep实例
我的问题:
为什么查询集返回空,即使数据是通过super
保存的?
是否有更好的方法访问刚刚保存的模型的已保存内联实例
更多信息-
如果我在日志行上放置一个断点,并对查询进行求值,我将得到一个返回正确查询集的结果。所以我觉得这与Django缓存或者查询的上下文有关。Django(我没有非rel的经验)缓存相关对象queryset。可以通过从数据库中重新蚀刻实例来避免这种情况
instance = Lesson.objects.get(pk=form.instance.id)
len(instance.lessonstep_set.all())