Эти модели позволяют мне установить несколько человеческих «редакторов» для инструмента:
class ToolPageEditors(models.Model):
person = models.ForeignKey('people.UserProfile')
page = ParentalKey('ToolPage', related_name='toolpage_editors')
class ToolPage(BaseAsset):
content_panels = BaseAsset.content_panels + [
InlinePanel('toolpage_editors', label="Tool Editors")
]
Но тогда каждый экземпляр ToolPageEditors
представляет собой раскрывающийся список с более чем 3000 пользователей. Я хотел бы ограничить содержимое этого раскрывающегося списка людьми в данной группе. Я знаю, как это сделать в Django, переопределив форму администратора, но мне трудно понять, как это сделать в Wagtail.
Предложения? Спасибо.
Обновление:
Ключ limit_choices_to
. Изменил класс следующим образом, и он работает:
class ToolPageManagers(models.Model):
def get_tool_editors():
g = Group.objects.get(name='Tool Editors')
return {'groups__in': [g, ]}
person = models.ForeignKey('people.UserProfile', limit_choices_to=get_tool_editors)
page = ParentalKey('ToolPage', related_name='toolpage_editors')