@thebigbang

Как изменять простые данные в Django?

Я знаю, как вывести сложные структуры данных - создаем модель, записываем в БД через ORM и регистрируем в админку.
Но как в админку добавить простые данные? Например, чтобы была возможность управлять данными в шапке сайта - телефоном, контактами итд.
Можно, конечно, создать модель ContactInfo, но тогда лишним функционалом будет возможность создания нескольких экземпляров этого класса
Хотелось бы , чтобы в админке было несколько инпутов, которые напрямую меняют данные на странице сайта.
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
ssyuzev
@ssyuzev
python coder
from django.db import models


class SingletonModel(models.Model):
    """Singleton model for global settings for example."""

    class Meta:
        abstract = True

    def save(self, *args, **kwargs):
        """Save with id=1."""
        self.pk = 1
        super(SingletonModel, self).save(*args, **kwargs)

    def delete(self, *args, **kwargs):
        """Can't delete by default."""
        pass

    @classmethod
    def load(cls):
        """Load value from model."""
        obj, created = cls.objects.get_or_create(pk=1)
        return obj


и наследуешь свою модель от этой. Еще нужно кеширование добавить - чтоб не дергать телефон из базы каждый раз
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы