我正在为json请求构建一个视图,并做一些工作来转移一些对象以进行序列化。
在此代码的末尾,您将看到我在模型的@property上添加了一些记录。
我发现,每次点击请求时,阵列的大小都会不断增长。
我曾假设每次从ORM获得实体时,该属性都是空白的。似乎正在发生的是财产被记住,并且意味着该名单将永远增长。
这是正确的,数据存储在哪里?记忆中?
您会看到我通过在每个请求上初始化一个新数组来解决问题,但我仍然认为这将是空白的
模型上的属性定义为:
_elements = []
@property
def elements(self):
return self._elements
@content.setter
def elements(self, elements):
self._elements = elements
视图模型构建在这里:
无需对代码进行多次询问,我发现它并不完美。
index_date_start = datetime.datetime.fromtimestamp(int(index) / 1000)
index_date_end = index_date_start + datetime.timedelta(minutes=30)
markers = Marker.objects.filter(start__lt=index_date_end,
end__gt=index_date_start,
package_id__in=[x.pk for x in group.zone.package.all()]) \
.select_related("elements") \
.select_related("package")
distinct_package_markers = markers.distinct("package")
markers = list(markers)
packages = [x.package for x in distinct_package_markers]
for package in packages:
#package.elements = []
#WITHOUT THE LINE ABOVE, THE ARRAY KEEPS GROWING, BETWEEN REQUESTS
for marker in markers:
if marker.package == package:
cue.element.start = marker.start
cue.element.end = marker.end
component.elements.append(marker.element)
return packages