Skip to content

matix-io/django-single-instance-model

Repository files navigation

Single Instance Model

Why?

We use Django for a lot of different things including CMS-style projects. In a CMS-style project, the user often needs to be able to just modify some data that shows up on the site. Maybe it's the content of a page.

The concept is simple: There's always going to be exactly one instance of this model.

Installation

To install, pip install django-single-instance-model.

Usage

In models.py:

from django.db import models
from single_instance_model.models import SingleInstanceModel


class AboutUs(models.Model, SingleInstanceModel):
    text = models.TextField(max_length=2000)

In admin.py:

from django.contrib import admin
from single_instance_model.admin import SingleInstanceModelAdmin
from . import models


@admin.register(models.AboutUs)
class AboutUsAdmin(SingleInstanceModelAdmin):
    pass

Warning

This works by executing code every time a database connection is established. It's a simple check to create the instance of the model if it doesn't exist.. but just be aware.

About

Always have exactly one instance of a model in Django.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published