Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How about having a SingletonModel in Django?

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 make 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?

like image 662
Ram Rachum Avatar asked Feb 16 '10 13:02

Ram Rachum


4 Answers

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.

like image 150
Rabih Kodeih Avatar answered Nov 09 '22 05:11

Rabih Kodeih


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

like image 40
aabele Avatar answered Nov 09 '22 04:11

aabele


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.

like image 2
Carl Meyer Avatar answered Nov 09 '22 05:11

Carl Meyer


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

like image 1
Brandon Henry Avatar answered Nov 09 '22 05:11

Brandon Henry