как ограничить встроенные формы администратора django

Как вы ограничиваете встроенный набор форм в администраторе django?

Проблема:

У меня есть таблица A с отношениями от 1 до n с B. В таблице A должен быть хотя бы один элемент таблицы B и не более 5 элементов таблицы B.


person ginad    schedule 30.03.2011    source источник


Ответы (2)


http://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-options

Укажите max_num в определении Inline, чтобы ограничить количество.

extra указывает, сколько пустых строк нужно показать.

Требуется ли 1 встроенный? Например, вы хотите вызвать ошибку проверки, если таблица B не заполнена хотя бы одной строкой?

person Yuji 'Tomita' Tomita    schedule 30.03.2011
comment
Я не знаю, как отключить кнопку добавления. - person Yuji 'Tomita' Tomita; 30.03.2011
comment
Кнопка добавления скрыта по умолчанию, если общее количество отображаемых форм превышает указанное значение max_num. Итак, если ваш max_num равен 5, и вы хотите отключить кнопку добавления, укажите extra = 5 В противном случае, когда общее количество форм достигнет 5, кнопка добавления будет скрыта. - person Snigdha Batra; 18.08.2014

Включение/отключение кнопки добавления в строке управляется методом _has_add_permission

вы можете добавить в свой встроенный класс:

def _has_add_permission(self, request, obj=None):
   # add/remove possibility to add a line to an inline
    if obj.table_b_items.count() < 5:
        return True
    else:
        return False
person Skratt    schedule 08.03.2021