As far as I can tell, this is by design done like this in django-cms. Others have complained (here's an issue that's been open for about a year: https://github.com/divio/django-cms/issues/1479) where an AsTag is suggested instead. I quickly looked at whether it would be worth creating a pull request where page_url was an AsTag instead. It can be done but I'm not sure if they will accept the pull request. Here's a pull request (albeit not a good one) that tries to fix this as well: https://github.com/divio/django-cms/pull/2211 but got rejected not only because it's implemented badly, but also because ["swallowing exceptions in debug mode could make debugging harder"](https://github.com/divio/django-cms/pull/2211#issuecomment-24093392).

It might be worth the try to get this implemented as an AsTag, but do we really want to maintain our own fork if it doesn't?

@nickstenning your thoughts on this?