Hi Jeff,
I'm kind of in the same boat - although
my site is on Django 1.11 and I could probably leave it there,
although there's some 2.x features I'd like to use.
To be honest, I'd recommend attempting
No. 2) (fork and attempt to upgrade it yourself) - and yes, if
your changes aren't going to break too many backwards
compatibility things, a pull request when you're done may be
useful.
Inspired by your post, I made a quick
start on this yesterday, with mezzanine and cartridge, and after
about 5 small fixes (and a bit of research), managed to get past
the initial "createdb" step of setup. I've not pushed my changes
back to my forks yet, but it wasn't too much effort to get this
far. I'll summarise the changes below to get you started. There's
probably more things to do based on actual operation of Mezzanine,
but this should be enough to at least generate a new test site.
Hopefully with a number of people
working on this we can support Django 2.2 without also breaking
Django 1.11 compatibility... A tricky task, no doubt!
Seeya. Danny.
~~~~
Mezzanine changes:
core/templatetags/mezzanine_tags.py
TOKEN_BLOCK, TOKEN_COMMENT, TOKEN_VAR
and TOKEN_TEXT are no longer members of django.template.base.
Instead, import TokenType and replace the references with
TokenType.BLOCK, TokenType.COMMENT etc.
project_template/project_name/settings.py
django.contrib.messages must be added
to INSTALLED_APPS
Cartridge changes:
shop/models.py
Replace @models.permalink decorator on
get_absolute_url() with using reverse inside the method, i.e.
def get_absolute_url(self):
return reverse("shop_product", args=(self.slug,))
project_template/settings.py
django.contrib.messages must be added
to INSTALLED_APPS
shop/views.py
Replace from django.core.urlresolvers
import reverse with from django.urls import reverse