У меня есть действующий formset, и я хотел бы исключить некоторые образцовые объекты из того, чтобы быть показанным в formset.
Для, например, есть модель B, у которой есть внешний ключ к модели A, таким образом, это 1:n (У объекта есть много объектов B), отношения. Теперь на администраторе редактируют страницу, у меня есть inlines B. Интересно, возможно ли так или иначе отфильтровать список объектов B, прежде чем действующий formset будет предоставлен, таким образом, не все связанные объекты B делают A добирается в formset.
Ответ на собственный вопрос может показаться немного странным Нашел другое решение;)
Возникла проблема для обеспечения пользовательского запроса на форму, нет крючком в случае встроенных блокностей для этого. Поэтому я подклассую BaseinLineFormset и переопределил метод get_Queryset. Тогда я просто предоставляю этот блюд в InlineModeladmin, и это сделано.
Пример:
class MyFormSet(BaseInlineFormSet):
def get_queryset(self):
if not hasattr(self, '_queryset'):
qs = super(MyFormSet, self).get_queryset().filter(main=False)
self._queryset = qs
return self._queryset
и класс администратора:
class MyInline(admin.TabularInline):
model = m.MyModel
formset = MyFormSet
...
Вы можете написать свой собственный менеджер вам модели (специально для formset) и использовать его.