我使用Django 1.9和django.contrib.gis
與擁有龐大的GIS MultiPolygonField
的Area
型號:如何忽略在django admin list_display中加載巨大的字段?
# models.py
from django.contrib.gis.db import models as gis_models
class Area(gis_models.Model):
area_color = gis_models.IntegerField()
mpoly = gis_models.MultiPolygonField(srid=4326)
class Meta:
verbose_name = 'Area'
verbose_name_plural = 'Areas'
我有關聯的AreaAdmin
類來管理Django管理裏面的Area
S:
# admin.py
from django.contrib.gis import admin as gis_admin
class AreaAdmin(gis_admin.OSMGeoAdmin):
map_width = 800
map_height = 600
modifiable = False
list_display = ['area_color', ]
exclude = ['mpoly', ]
gis_admin.site.register(Area, AreaAdmin)
問題是,即使我使用的list_display
不包含mpoly
和exclude
屬性以防止它在窗體視圖中顯示,但在顯示列表視圖時,它仍然會獲取所有t他從數據庫中取出並將其加載到內存中。因爲mpoly
是如此巨大,我有隨機誤差(段錯誤,處理遇難,...)和列表顯示需要許多時間才能顯示一些簡單的整型字段...
有什麼辦法來告訴Django不要將mpoly
加載到內存中,要在它的數據庫查詢中完全忽略它,以便加載速度更快?除了exclude
之外,我還沒有發現任何文件可以遠程實現這一點。我在這裏問的情況下,我失去了一些東西。
感謝您的協助。
驚人!確切地說,我需要通過搜索找不到。謝謝 ! – achedeuzot