Как отключить разрешение на добавление на странице администратора 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