I’m not sure what you mean by content management, so I’m gonna take a guess: website builder like Weebly or Wix. You need a NoSQL database, completely unstructured data. Kind of like a crime file drawer with folders dedicated to each case and all its evidence. Some folders only have one piece of evidence and others a whole lot, right?
By the looks of it, you’re making some revolutionary Weebly or Wix or whatever with some custom features. If so, here’s what I’d recommend:
1) Read up on how jinja is developed. Jinja is the templating thing we use in Django, for example: { if user.is_authenticated}
This will help you layout each individual website.
2) Use an unstructured database, like MongoDB or Cassandra. I almost always tell people you should never have to use a NoSQL db, but in your case, it might work. Take MongoDB’s document-based schema: each document belongs to a single website. Within each document would be the site’s content using keys as a way to input the key’s values on to the website (hopefully that makes sense) using a jinja inspired template.
The thing I’m confused about is your media app. So I’m gonna guess again and hopefully you can clear it up for me if need be. If not, still lemme know.
Let’s say — I’m imagining a website builder like Wix and Weebly right now btw — that a user drags some music container onto his/her website. The user adds music and stuff via a different app? I don’t think that’s necessary unless you code this part in C (for finding the files. Read on for what I mean).
If you’re not using AWS with cookiecutter-django for deployment, I’d recommend you go to The Eye (somewhere on Reddit and Discord or their website) to figure out how to name these uploaded files or make some sort of system to find these files quickly while keeping them private from other users (by replacing uploaded file names with extremely long names. That’s how Dropbox does it I believe).
The Eye is like an Archive team. They’re lovely and helpful people, especially regarding data hoarding which you’re project might entail in...
I try my best to help completely new Django members with great ideas start their journey or make that giant leap. So if this shit made no sense, don’t feel frustrated when you could simply clarify some stuff for me. Good luck!