0

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

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

用于编辑 RefrenceProperty 的小部件使用 Place.all() 来获取可能的值。由于 Activity 和 Place 都被城市属性分割,我想优化从 Place.all() 到相关位置的小部件选择查询,例如 Place.all().filter("city =", )

我找不到覆盖文档中查询的​​方法,我想知道上述是否可行?如果是这样,如何?

4

1 回答 1

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
于 2010-01-22T14:16:05.517 回答