2012-05-17 3 views
0

Я хочу добавить модель макета на свой сайт (общий файл настроек), и я хочу, чтобы он был доступен в интерфейсе администратора для настройки.Django - экземпляр одной модели

class Layout(...Model): 
    primary_header 
    logo_image 
    ... 

Эта структура не должна сохраняться в таблице.

Мне интересно, есть ли встроенная функция, которая может помочь мне в этом.

Благодаря


Мой случай использования является настраиваемым макет веб-сайта. Стиль Wordpress. Я хотел бы сохранить эти данные в конкретном классе, не выполняя сериализацию файла/xml самостоятельно.

+0

Зачем нужна модель, если она не сохраняется в таблице? –

+0

@ IgnacioVazquez-Abrams: Я также хотел бы услышать более конкретный вариант использования OP. – jdi

+0

@jdi: Я добавил свой прецедент. – Amirshk

ответ

1

Что относительно абстрактной модели? Он не сохраняется в базе данных и предназначен для подкласса, но вам разрешено создавать экземпляры и использовать его атрибуты. Я предполагаю, что вы хотите, чтобы какая-то временная структура данных проходила, что соответствует требованиям экземпляра модели.

class Layout(models.Model): 

    class Meta: 
     abstract = True 

Если вы по какой-то причине нужны реальные модели конкретные, и прекрасно с этим создание таблиц для них, вы могли бы технически и повторно реализовать метод сохранения() и сделать его не-оп.

Я действительно не понимаю, где и как вы будете использовать это, но это действительно модель, которая не спасает.

Лично я фактически использовал модели, которые не предназначены для сохранения, в проекте, использующем mongodb и нерельсовой вилкой django. Я создаю модели, которые предназначены исключительно для встраивания в другие модели в виде вложенных поддокументов, и я никогда не хочу, чтобы они были привязаны к отдельной коллекции.

Update
Вот еще одно предложение, что могло бы сделать вещи намного проще для вашей цели. Почему бы просто не использовать обычную модель django, сохранить ее в базе данных, как обычно, и создать простую функцию импорта/экспорта, чтобы сохранить ее в XML или прочитать в экземпляре из XML. Таким образом, вы получаете 100% нормальную функциональность администратора, вы все равно можете запросить базу данных для значений, а часть XML - простое дополнение. Вы также можете использовать это для изменения настроек и отметить определенный как активный.

Смежные вопросы