Is it possible to make a Django model read only? No creating, updating etc.
N.B. this question is different to:
Make a Django model read-only? (this question allows creation of new records)
Whole model as read-only (only concerns the Django admin interface - I'd like the model to be read only throughout the whole app)
To be absolutely sure that your model is read-only, you can use the DATABASE_ROUTERS setting to disable writing on a per model basis:
I would consider this an insurance policy, and not the primary way to solve the problem. Mikael's answer, for example, is great but doesn't cover all cases because some Django operations bypass
delete
andsave
methods.See Juan José Brown's answer in Django - how to specify a database for a model? for a more detailed description of using a database router.
Override the save and delete methods for the model. How are you planning to add objects to your model?
Througth this is very old question - it will be usefull: https://docs.djangoproject.com/en/dev/ref/models/options/#managed