Как отключить разрешение на добавление на странице администратора Django, когда выпадающее поле выбора не содержит никаких данных?

У меня есть модель, которая имеет поле template_name, которое отображается как выпадающее в django admin.

template_id = models.CharField(max_length=255, choices=template_data, unique=True)

Данные template_data заполняются из другого скрипта. Формат данных шаблона_данных следующий : (('123', 'car'), ('456', 'bike'))

Это работает хорошо, когда template_data имеет некоторые значения, но когда template_data является пустым кортежем, тогда я хочу отключить любое разрешение на добавление на странице администратора.

В настоящее время, когда redis выключен, кнопка добавления отключена, но как сделать то же самое, когда template_data является пустым кортежем?

Разрешение на добавление, когда redis выключен:

def has_add_permission(self, request, obj=None):
    is_redis = RedisCache.is_redis_available()
    if is_redis is not True:
        return False
    return True

RedisCache.is_redis_available(): Проверка Redis происходит путем вызова is_redis_available func класса RadisCache.

Почему нельзя загружать template_data непосредственно в методе разрешения?

def has_add_permission(self, request, obj=None):
    if not template_data:
        return False
    is_redis = RedisCache.is_redis_available()
    if is_redis is not True:
        return False
    return True
Вернуться на верх