Для тех, кто заинтересован в полном решении уменьшения области раскрывающегося меню до объектов-предков, которые я вставил ниже.Если вы затем настроите модель с помощью (parent = ...) и будете использовать форму, подобную приведенной ниже, в раскрывающемся списке отображаются только предки.Наслаждаться.
class WombatForm(djangoforms.ModelForm):
def __init__(self, *args, **kwargs):
super(WombatForm, self).__init__(*args, **kwargs)
for field_name in self.fields:
field_model = self.fields[field_name]
if isinstance(field_model,djangoforms.ModelChoiceField):
root = WombatForm.get_root_node(self.instance)
self.fields[field_name].query.ancestor(root)
@staticmethod
def get_root_node(entity):
'''
returns the final parent ancestor of the given entity
'''
parent_ent = entity.parent()
if parent_ent == None:
return entity
return WombatForm.get_root_node(parent_ent)
class SecondForm(WombatForm)
class Meta:
model = Second