开发者

How about having a SingletonModel in Django?

开发者 https://www.devze.com 2022-12-20 19:45 出处:网络
I\'m making a very simple website in Django. On one of the pages there is a vertical ticker box. I need to give the client a way to edit the contents of the ticker box as an HTMLField.

I'm making a very simple website in Django. On one of the pages there is a vertical ticker box. I need to give the client a way to edit the contents of the ticker box as an HTMLField.

The first way that came to mind was to m开发者_运维技巧ake a model Ticker which will have only one instance. Then I thought, instead of making sure manually that only one instance exists, perhaps there is (or there should be) something like a SingletonModel class in Django, which is like a normal model, except it makes sure no more than one instance gets created?

Or perhaps I should be solving my problem in a different way?


Try django-solo, it works in django 1.5 + for sure, django-singletons doesn't work with 1.5 + because it uses a deprecated feature.


You can use django_singletons. It has a built in admin support.


I think having a "singleton" model is ugly; it's dumb use of the relational database and it's bad UI, because the admin UI is built around working with lists of objects.

Instead I prefer to use a generic solution like django-chunks or django-flatblocks for this.


rewrite your save method so that every time a Ticker object gets saved it overwrites the existing one (if one exists).


A model with only one instance, a singleton, is sometime useful for things like global settings that you want to edit from the admin instead of having them in Django settings.py.

There are several third party applications that helps implementing singleton models and improve the admin interface for instance, django-solo, django-singleton-admin, django-singletons.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号