Администратор Джанго, фильтр возражает для действующего formset

У меня есть действующий formset, и я хотел бы исключить некоторые образцовые объекты из того, чтобы быть показанным в formset.

Для, например, есть модель B, у которой есть внешний ключ к модели A, таким образом, это 1:n (У объекта есть много объектов B), отношения. Теперь на администраторе редактируют страницу, у меня есть inlines B. Интересно, возможно ли так или иначе отфильтровать список объектов B, прежде чем действующий formset будет предоставлен, таким образом, не все связанные объекты B делают A добирается в formset.

11
задан Dominic Rodger 20 January 2010 в 14:31
поделиться

2 ответа

Ответ на собственный вопрос может показаться немного странным Нашел другое решение;)

Возникла проблема для обеспечения пользовательского запроса на форму, нет крючком в случае встроенных блокностей для этого. Поэтому я подклассую 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
    ...
18
ответ дан 3 December 2019 в 06:46
поделиться

Вы можете написать свой собственный менеджер вам модели (специально для formset) и использовать его.

http://docs.djangoproject.com/en/dev/topics/db/managers/

0
ответ дан 3 December 2019 в 06:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: