Why not just override the save method for the model and delete any instances of it before calling super.save(). I'm not a 100% sure on this, but I do think the admin interface calls the model save method whenever you edit something from there.
So, something like this: class About(models.Model): text = models.TextField() pub_date = models.DateTimeField(auto_now=True) def save(self): About.objects.all().delete() super(About, self).save() Also see http://www.djangoproject.com/documentation/model-api/#overriding-default-model-methods Best, Rishabh On Tue, Jun 17, 2008 at 2:05 AM, Dan Lazewatsky <[EMAIL PROTECTED]> wrote: > > The way you described has the added advantage of effectively keeping a > version history. However, if no one is ever going to use this history > it's just a waste of space. There are two other options I can think of, > one probably better than the other: > 1. Django's cache framework > (http://www.djangoproject.com/documentation/cache/) should help avoid > some of the overhead of the DB calls. > 2. Triggers - MySQL and Oracle (and probably others) support triggers > which fire a certain event occurs. You could setup a trigger that fires > when a new row is inserted into your about table that deletes all rows > but the new one. In my experience, triggers are a pain to deal with, but > it's an option. > > ocgstyles wrote: > > The client wants certain parts of the site to be editable, I don't > > particularly agree with the logic, simply because why take a DB hit > > (although small) just to grab text from a database for an "About" page > > when that text us USUALLY static. > > > > So thinking of this "About" page, maybe the client just tells a little > > about the business etc, but maybe wants to update it occasionally. I > > implemented it as a "About" class in a "Section" module. But with > > that model, you can add multiple "About" texts. One way I thought of > > doing it was to grab the latest edited object like this: > > > > class About(models.Model): > > text = models.TextField() > > pub_date = models.DateTimeField(auto_now=True) > > > > Then just use: > > > > About.objects.order_by('-pub_date') > > > > to retrieve the latest edited version. So having many versions isn't > > a problem... > > > > Just wondered if there was a better way to handle this. > > > > > > On Jun 14, 2:41 pm, bruno desthuilliers > > <[EMAIL PROTECTED]> wrote: > > > >> On 14 juin, 15:53, ocgstyles <[EMAIL PROTECTED]> wrote: > >> > >> > >>> Is there a way create a restriction that will only allow one instance > >>> of a model? > >>> > >> The closest you could get would be to define a model with a unique not > >> editable field and override the save method to make this field a > >> constant value. But that wont work for direct database access. > >> > >> Anyway, why would you want such a thing ? > >> > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---