Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django queryset返回不正确的数据?_Django_Google App Engine_Django Forms_Django Queryset_Django Nonrel - Fatal编程技术网

Django queryset返回不正确的数据?

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

我的设置是一个在谷歌应用程序引擎上运行的Django Nonl

我有一个课程模型\表单,其中包含LessonStep内联模型\表单。连接是通过第一课中指向第一课的外键实现的。 我正在使用
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())