在django Admin(AppEngine)中优化ModelChoiceField查询

时间:2010-01-21 15:31:08

标签: django google-app-engine django-admin app-engine-patch

我有两个模特:活动和地方。 Activity模型具有Place模型的ReferenceProperty。

这一点工作正常,直到Place表开始增长,现在 当尝试通过django admin编辑活动时,我收到内存错误 来自Google(如果我从活动中删除该字段,则不会发生这种情况 管理员的字段集)

用于编辑RefrenceProperty的小部件使用Place.all()来获取 可能的值。 由于活动和地点都被我想要的城市房产分割 优化窗口小部件的选择查询从Place.all()到 相关位置,例如Place.all()。filter(“city =”,)

我无法找到一种方法来覆盖文档中的查询而我是 想知道上述是否可能?如果是的话,怎么样?

1 个答案:

答案 0 :(得分:0)

通过覆盖管理表单来管理以优化查询:

class ActivityAdminForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ActivityAdminForm, self).__init__(*args, **kwargs)        
        self.fields['place'].queryset = <... my query ...>


class ActivityAdmin(admin.ModelAdmin):
    form = ActivityAdminForm