Django管理列表显示 - 针对自定义名称的预取

时间:2018-03-20 11:48:20

标签: django django-admin

我为列表显示创建了一些自定义名称,但它们在我的管理列表显示中生成了500多个查询。我添加了一个select和prefetch QuerySet(在编辑表单上工作)并且看起来已经切断了一些列表显示。

但是我认为get_xxx字段也需要预取?但我不确定如何做到这一点?

df<-structure(list(ParkName = structure(c(2L, 6L, 4L, 7L, 5L, 6L, 
3L, 3L, 1L), .Label = c("Big Talbot Island State Park", "Fakahatchee Strand Preserve State Park", 
"Jonathan Dickinson State Park", "Key Largo Hammocks", "Myakka River State Park", 
"Paynes Prairie Preserve State Park", "Sebastian Inlet State Park"
), class = "factor"), ParkLatitude = c(26.02109, 29.57728, 25.25342, 
27.86018, 27.2263, 29.57728, 27.00857, 27.00857, 30.47957), ParkLongitude = c(-81.42208, 
-82.30675, -80.31574, -80.45221, -82.26661, -82.30675, -80.13897, 
-80.13897, -81.43955), Year = c(2004L, 2000L, 1996L, 1997L, 2008L, 
2002L, 2004L, 2002L, 1995L)), .Names = c("ParkName", "ParkLatitude", 
"ParkLongitude", "Year"), class = "data.frame", row.names = c(NA, 
-9L))

1 个答案:

答案 0 :(得分:1)

亚历克斯三件事。

  1. ModelAdmin应定义main.py函数,而不是get_queryset
  2. 其中一个queryset次调用中存在拼写错误,代码未因第1点而失败。
  3. 您在prefetch_related列出的所有字段都是外键吗?因为在这种情况下你应该使用相关的预取。
  4. 一般来说,不要担心get_xxx功能。他们会工作的     在使用您的查询集获取的对象上 - 所以如果您获取您的内容     需要时,不会有其他疑问。