I’ve been working with a team for the first time on a project, and it’s been an interesting experience. I’m still at the steep point on the learning curve, so it’s tough to know if my thoughts and instincts about some tasks are legitimate.
An example: We are redesigning both a large scale website, it’s admin panel, and a blog app within the website. We’re moving to a Django powered site/blog with Angular as our front end framework. The higher-ups on the team have decided that the admin panel should be a single page app. I know these are all the rage, and when well-done, are really easy to use, but it seems unnecessary for some aspects of the admin panel. Django comes with so much built into it’s default admin panel. We used it to create the entire blog app- it handles the routing, and comes with the basics of an admin panel. It also has a great user management system baked in.
It’s not as cool as a fully single page app would be, but it seems like a waste to junk so many of the built in features. So I’ve been trying to figure out a way to import the Django admin features into a normal Django view. The models seem to be the easy part- but so much of the url routing is built in, it’s going to be tricky to try to move that to something like a $http routing structure that would be needed with a single page app.
My other hope is that we won’t have to change the front end routing of the blog app. But if we change everything about the admin side, it seems like a pipe dream that the front end would magically work. The front end is ready to ship, so I’m keeping my fingers crossed for that magic!
And maybe none of this makes sense. I hope that’s the case- if so, I will learn some really cool stuff about manipulating frameworks to meet specific, custom needs. I read a few blogs/tutorials about integrating Angular with Django, and they make good arguments, but none seem to use the built in admin.py file. At least not without quite a bit of difficulty. It seems that using both takes a little away from each: the front end framework (Angular) wants to do much of the work that the back end framework (Django) already does (and vice versa).