I want to make some of my Django global settings configurable through the admin interface.

To that end, I've decided to set them as database fields, rather than in settings.py.

These are the settings I care about:

 class ManagementEmail(models.Model):
    librarian_email = models.EmailField()
    intro_text = models.CharField(max_length=1000)
    signoff_text = models.CharField(max_length=1000)

These are one-off global settings, so I only ever want there to be a single librarian_email, intro_text etc floating around the system.

Is there a way I can prevent admin users from adding new records here, without preventing them from editing the existing record?

I guess I can do this by writing a custom admin template for this model, but I'd like to know if there's a neater way to configure this.

Could I use something other than class, for example?

Thanks!

Edit
Report