Requesting advice on setting up a demo user for my application

I know I can limit a demo user (by using permissions) so that they can only read data and prevent them creating and deleting data.

BUT I would like a demo user to have the full experience of using my application i.e. CREATE, READ, UPDATE & DELETE access

So any advice on how I could allow a demo user to do this would be very helpful and answers to the following questions would be much appreciated

  1. I’d like the demo user to have the database seeded with some initial data - is this sensible?
  2. should I only permit 1 demo session at a time? If so how would I do this?
  3. should I run a cleanup activity after each demo logout to restore the initial. data state
  4. Or should I allow a demo user to do everything except delete data?
  5. Or restrict a demo user to only CREATE & READ and prevent UPDATE & DELETE
  6. what do you think of a more radical approach to having a separate (from the production. database) a parallel demo database. where users would have full capabilities and then simply do a full database restore say once a day

This is a tremendously large topic, with any number of appropriate answers and approaches.

All of the options you have identified can be done. It’s really a question of what you want the “user experience” to be for each demo user.

This also isn’t a Django-specific situation. Many sites have demos available to show off products, with any variety of permissions defined.

It’s up to you to identify what you want to highlight, and then implement that in your demo system.

Thank you for your reply & advice