Hacker News new | comments | ask | show | jobs | submit login

Jobs, Adoption, and Community - plenty of adoption of both, but I've seen more Rails opportunities than Django

Scalability - you'll be fine with either

Fun - Rails

After completing a bunch of PHP projects, I recently completed a project for a client where I spent about 6 months with Django. It was fine and I'm glad I did it, but I can't say I would call it "fun". There were a few points that I found painful. The django admin is customizable and for certain types of apps, it works well. But I wanted my clients to use it to manage data in a legacy database. The inspectdb command was cool and generated models for me along with some data management forms. However, getting the forms to work in ways that matched the workflow of my clients was difficult. I found myself wanting to do things like a "reverse" inline -- there were several things that I couldn't figure out and StackOverflow searches didn't reveal good solutions. On my next django project, I decided not to use the admin because it took me longer to figure out how to customize it then it did to just use ModelForms outside of the admin. I haven't found many of the contrib apps to be all that useful or flexible.

And for reporting, some of the more complicated queries just didn't work well with the ORM, and I found myself doing ugly things to avoid writing SQL (I know Django doesn't prevent you from writing raw SQL).

I just didn't get the same "fun" feeling I did when I first developed a Rails app, first grabbed a Vimeo API or flickr gem off of Github, and first pushed it up to Heroku and saw it magically work. And I didn't feel like I was any more productive than I was with PHP -- the main benefits were that 1) my code was more readable and 2) it led me to another opportunity in a completely different area that involves writing python -- but rather than Django, I get to work with Twisted, and this has expanded my horizons greatly.




Django admin isn't designed to handle any kind of workflow - it's just for adding data. That's all, plain and simple.

If you're expecting to need any kind of workflow, it's actually prefererable to start your page from scratch, and use some of the other django page creation tools than use the admin module.




Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: