[Fixed]-Django 3 vs Django 2


Is django 3 backward compatible with django 2?

No Django version is fully backwards compatible with the previous one. In the release notes, one can see what has changed. is not compatible with , although in that case the changes are smaller, as is stated in the Django’s release process section of the documentation:

A.B is the feature release version number. Each version will be mostly backwards compatible with the previous release. Exceptions to this rule will be listed in the release notes.

Are there any syntax changes in django 3 compared to django 2?

Not much, adds for example a Sign expression, and the CheckConstraint is now supported for MySQL 8.0.16+, and there are some other features listed in the release notes. But this is simply extending on existing functionality.

Will i be able to follow django 2 tutorial on YouTube and be okay to apply it in django 3 as there are not many django 3 tutorials available?

Likely yes. In case something is not working, you better look at the release notes, and see if that is impacted and try to fix it accordingly. However more sophisticated problems will often arise when you are more familiar with the Django framework.


Django 3 is just an evolutionary step from Django 2.

It is not like Python 3 and Python 2.

Some amount of work may be required to port from Django 2 to 3 but much less than needed to port from Python 2 to 3.

Leave a comment