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