реализовывать иерархические структуры данных ( совсем не понял и в гугле не нашел )
Как заполнить базу данных на 50 000 сотрудников
api передавать иерархию сотрудников
это вообще тестовое задание на джуна без опыта
class Meta(SingletonModel.Meta):
self.__class__.objects.exclude(pk=self.id).delete()
А Python разработчики имеют дело в основном только с бэкенд - и понятия про фронтенд у них будут на уровне dummy html, css, bootstrap.
class FacultyViewSet(
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
GenericViewSet
):
queryset = Faculty.objects.all()
serializer_class = FacultySerializer
permission_classes = (permissions.AllowAny, )
class CachedSingletonModel(models.Model):
class Meta:
abstract = True
def save(self, *args, **kwargs):
self.pk = 1
super().save(*args, **kwargs)
self.set_cache()
def delete(self, *args, **kwargs):
''' Bypass delete method '''
pass
def set_cache(self):
cache.set(self.__class__.__name__, self)
@classmethod
def load(cls):
if cache.get(cls.__name__) is None:
obj, created = cls.objects.get_or_create(pk=1)
if not created:
obj.set_cache()
return cache.get(cls.__name__)
# создаете свою модель настроек
class Settings(CachedSingletonModel):
... определяете свои поля
my_field = ...
# используете
mysettings = Settings.load()
mysettings.my_field
count = cache.get_or_set(f'ip:{ip_address}', 0, <нужное количество секунд>)
count += 1
if count > <допустимое количество попыток>:
raise Exception('Давай, - до свидания')
else:
cache.set(f'ip:{ip_address}', count, <нужное количество секунд>)
.annotate(
title_contains=Case(
When(
Q(title__icontains='test'),
then=V('True')
),
default=(V(False)),
output_field=BooleanField()
),
desc_contains=Case(
When(
Q(desc__icontains='test'),
then=V('True')
),
default=(V(False)),
output_field=BooleanField()
),
...
for obj in result:
print(obj.title_contains) # триггернулось ли по title
print(obj.desc_contains) # триггернулось ли по desc
Чтобы сконфигурировать приложение, создайте модуль apps.py внутри приложения, затем определите тут класс - инстанс AppConfig.
Когда INSTALLED_APPS содержит путь отделенный точками к модулю приложения, по умолчанию, если Django находит только один инстанс класса AppConfig в модуле apps.py, он использует эту конфигурацию для приложения. Это поведение можно отключить установкой AppConfig.default в False.
Если модуль apps.py содержит более одного инстанса класса AppConfig, Django будет использовать тот, в котором AppConfig.default будет установлен в True.
Если никаких инстансов AppConfig не будет найдено, будет использован базовый AppConfig.
Как вариант, INSTALLED_APPS может содержать путь отделенный точками к классу, чтобы указать его явно:
INSTALLED_APPS = [ ... 'polls.apps.PollsAppConfig', ... ]
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
...
INSTALLED_APPS = [
'django.contrib.admin.apps.AdminConfig',
'django.contrib.auth.apps.AuthConfig',
...