
Django 1.10 released - hrayr
https://www.djangoproject.com/weblog/2016/aug/01/django-110-released/
======
Flimm
Here are the release notes, they are excellently written, just like the Django
docs are excellently written. I continue to be impressed.

[https://docs.djangoproject.com/en/1.10/releases/1.10/](https://docs.djangoproject.com/en/1.10/releases/1.10/)

------
orf
Shame about Channels, but I see the logic in not including it. Django is
pretty awesome as a backend, and while it's not a 'cool' framework anymore (I
feel old!) it's amazing for writing back-office applications.

I use it as an API backend with Django-rest-framework. The advantage is you
get ridiculous amounts of packages that all integrate with Django that does
pretty much anything you want. Also the ORM doesn't suck now so that's a
bonus.

~~~
sdegutis
Huh. Your argument in favor of Django is basically "it may not be cool, but
it's got a lot of libraries written for it." Which is basically the same thing
people used to say (and still say) about Java, compared to something "cool"
and "new" like, say, Django or Rails (at the time). In other words, Django
used to be picked because it was the hot new thing, but since then it's no
longer hot or new, but since enough people adopted it, they wrote enough
libraries for it to make it worth continuing to use on new projects.

~~~
morgante
Was Django _ever_ the hot new thing? Python certainly isn't and has never been
"hot."

In the 2000s, it seems much more like all the attention went to RoR. Now all
the attention goes to JavaScript.

In the meantime, Django has steadily added new functionality while adhering to
smart core principles. It really does seem to be in the sweet spot of
dependability and convenience. I don't think anything else is faster to
develop with.

~~~
oliwarner
You must have been asleep 5-10 years ago when Rails and Django were repeatedly
being pitched against each other by hipster developers, leaving PHP, looking
for the "new thing".

They were both scorching hot until somebody decided doing everything in
Javascript was a good idea.

(Edit FTR: Given the topic thread, I feel it important to say that I didn't
mean Node et al _are_ better than Django, just that these hipsters thought —by
virtue of being newer and newer is always better— it time to move on. I'm a
Django dev and judging by the positive state of development, will be for a
LONG time.)

~~~
morgante
I guess I remember all the hype going to Rails, not Django. For example,
dozens of coding bootcamps used a Rails curriculum but I haven't heard of a
single one which taught Django.

------
ben_jones
Recently after a 6 year hiatus from Django, I've experimented migrating a
smallish flask API and wholly cow did the Django API get CLEANER. Like my god
people talk about Django as if it hasn't changed in 6 years but it feels to me
like many of the warts got removed and it's just down right pleasant to work
with. I love Flask but there is just a little too much boiler plate when you
compare it to modern Django for even small projects (IMO).

------
stenius
Edit: looks like this is now the 2nd to last release to support Python2.

Original: It doesn't mention it on this page, but this is also planned to be
the last Django release to support python2. Django 2 will require python3.

~~~
davb
This is great news.

Now that the transition is in full swing, it's encouraging to see more
projects adopt a Python 3 First attitude.

I only wish Ansible would catch up (a recent release broke the core Python 3
support that was there, and no-one seemed to care as Py3 isn't yet officially
supported).

~~~
brianwawok
Ansible problem is 100s of libs that are python2 only. Sysadmins never got
python3...

------
hrayr
Some of the highlights:

\- Full text search for PostgreSQL.

\- New-style middleware to solve the lack of strict request/response layering
of the old-style of middleware.

\- Official support for Unicode usernames.

------
dchuk
As a Rails dude...is there any reason for me to learn Django at all?
Everything I've heard about it is that it provides a lot of sane defaults
(like Rails) but has much less "magic" than Rails is typically thought to
have.

And if the answer to my question is yes, what
books/tutorials/screencasts/courses to people recommend to get started with?

~~~
bdr
As someone who picked Django over Rails ~10 years ago and has used it for
everything since then-- I wouldn't bother.

Django and Rails, like Python and Ruby, look more and more similar as time
goes on. Not because they are becoming more similar, but because the web
ecosystem around them has become a lot more diverse. If you want a break from
Rails, learn Phoenix! Or Node, I guess.

Furthermore, with the advent of fat front-ends, the utility of both of these
frameworks has gone down in absolute terms. When they first came out, front-
end features like form generation and HTML templating were really important,
but now they're arguably better to avoid. (That's why channels are so
important to the future of Django.)

That said, I still like Django a lot and use it all the time. I don't want to
discourage you from learning it. But I wouldn't do it because you're trying to
make a leap from Rails.

~~~
rufugee
What a refreshingly honest answer...thank you. It's not often you see that
sort of candor.

I was personally a Rails guy, then switched to learning Django, but had the
experience you note...both frameworks solved many problems which aren't as
relevant in this age of SPAs. I suppose if you really liked Django's ORM it
might be worth it, but doubt there's a huge amount of value to be gained.
YMMV.

~~~
hrayr
I suppose if the framework, community and ecosystem are on par with each
other, then the deciding factor would be the language.

~~~
babayega2
Exactly. I've chosen Django because of Python.

------
plumeria
I wonder why this release didn't include the class-based auth views
([https://github.com/django/django/blob/1.10/django/contrib/au...](https://github.com/django/django/blob/1.10/django/contrib/auth/views.py)
vs
[https://github.com/django/django/blob/master/django/contrib/...](https://github.com/django/django/blob/master/django/contrib/auth/views.py))

~~~
alasdairnicol
Django has a time based release schedule [1]. The class based authentication
views weren't committed until after the feature freeze for the 1.10 alpha.

~~~
alasdairnicol
[1]: [https://docs.djangoproject.com/en/1.9/internals/release-
proc...](https://docs.djangoproject.com/en/1.9/internals/release-
process/#release-process)

------
hrayr
Looks like channels was not included in 1.10. Is there still a plan to package
it with Django or is it better served to be a stand alone app for now?

According to channels' documentation:

> You can install Channels as a library for Django 1.8 and 1.9, and it (should
> be) part of Django 1.10.

~~~
heyts
It was withdrawn from the 1.10 release about 3 months ago, I think:

[https://groups.google.com/forum/#!msg/django-
developers/QRd4...](https://groups.google.com/forum/#!msg/django-
developers/QRd4v7OErT8/oTv4APoOAwAJ)

~~~
ataylor32
Also see:

[https://groups.google.com/forum/#!topic/django-
developers/24...](https://groups.google.com/forum/#!topic/django-
developers/24DGLVVRV_s)

------
hrayr
I'm still stuck with Django 1.4 for one of my projects, it's such a big hurdle
to upgrade it. I wonder if it's worth to just straight up rewrite it in 1.10.

~~~
Walkman
It's better to do it step by step: 1.4 to 1.5, 1.5 to 1.6, etc. You need to go
through the release notes and have a good test coverage.

~~~
bdr
This. Go through the deprecation lists and backwards incompatibility lists
item by item. Thankfully, they're very thoroughly done. It probably won't take
as long as you think!

------
EDevil
In the middle of the changes is an important security fix for sites that take
file uploads: [https://substance.brpx.com/hardening-django-one-dos-at-a-
tim...](https://substance.brpx.com/hardening-django-one-dos-at-a-
time-30bbfc8c853)

------
spdustin
As someone who's picked up Python only in the last few years, Django is
amazing. I'm particularly fond of Django CMS.

Does anyone know of a working "static site generator" for Django that works
with Django CMS? Or maybe Wagtail? Something that would build out the static
HTML pages ready to deploy to S3. Django CMS (thanks to Django itself) has a
wonderfully robust back-office UI, and I feel like my Google-fu has failed me
in finding that last puzzle piece to static site nirvana.

~~~
clintonb
See
[http://docs.wagtail.io/en/v1.5.3/reference/contrib/staticsit...](http://docs.wagtail.io/en/v1.5.3/reference/contrib/staticsitegen.html)
for Wagtail. I've been experimenting with django-bakery and wagtailbakery with
much success.

~~~
spdustin
How did I miss that? Thanks so much!

------
encoderer
If there are any Django masters in the building: If you were starting a
project today would you use 1.10 or stick with the LTS release (1.8)? I have a
fairly mature django project using 1.6 that I would be borrowing a bit from,
and my experience _not_ upgrading off 1.6 due to pain makes it feel like an
LTS path might be a good choice?

~~~
jsmeaton
The next LTS will be released in about 9 months. If you're willing to make a
small upgrade at that time, I'd build on 1.10 and then upgrade to 1.11 LTS,
which will give you 3 years (I think..) plus 9 months of 1.10 support.

Moving from 1.8 to 1.11 shouldn't require any changes provided that you're
running with 0 deprecation warnings on 1.8. The new release scheme means that
if you're running on an LTS with no deprecation warnings, then you should be
able to upgrade to the next LTS release with no changes (but lots of new
deprecation warnings).

Hope that helps.

[https://docs.djangoproject.com/es/1.9/internals/release-
proc...](https://docs.djangoproject.com/es/1.9/internals/release-process/)

~~~
ataylor32
> Moving from 1.8 to 1.11 shouldn't require any changes provided that you're
> running with 0 deprecation warnings on 1.8.

Yes, this is how it's _supposed_ to be. This agrees with Django's roadmap (see
the "I’m the maintainer of a reusable application. Which Django versions
should I support?" question at the bottom):
[https://www.djangoproject.com/weblog/2015/jun/25/roadmap/](https://www.djangoproject.com/weblog/2015/jun/25/roadmap/)

However, it depends on the third party apps you're using. I have a Django 1.9
site that uses django-mptt. The site was running warning-clean, but when I
attempted to upgrade the site to Django 1.10, it broke because of this issue:
[https://github.com/django-mptt/django-
mptt/issues/469](https://github.com/django-mptt/django-mptt/issues/469)

~~~
jsmeaton
Yeah dependencies are always going to be an issue unfortunately. Django can
make as many recommendations as it likes, but you're still at the mercy of all
other dependencies.

Moving from 1.9 to 1.10 is different than moving from LTS to LTS. The hope is
that 3rd party packages will be testing against LTS releases at the minimum,
which should allow you to make the jump after packages have time to update
themselves.

~~~
ataylor32
> Moving from 1.9 to 1.10 is different than moving from LTS to LTS. The hope
> is that 3rd party packages will be testing against LTS releases at the
> minimum, which should allow you to make the jump after packages have time to
> update themselves.

This is true. Good point.

------
hoodedfang
Django has managed to avoid collapsing under its own weight and for that it
should be commended. If you've invested time in less-opinionated
microframeworks, you're probably better off just not going the Django route(no
pun intended).

