title: Django parler TranslatableSlugMixin translates from English to another language, but once translated cannot be translated back returns 404
body: <p>I'm using Django CMS with Django Parler and have run into a problem that is driving me mad, so if anybody could help, it would be much appreciated!</p>
  
  <p>So I'm creating a simple blog app that has the slug as a translatable field. Here is the model simplified:</p>
  
  <pre><code>from parler.models import TranslatableModel, TranslatedFields
  
  class Article(TranslatableModel):
      ...
      translations = TranslatedFields(
          ...
          slug = models.SlugField(_('slug'), max_length=255, blank=True, allow_unicode=True),
          meta = {'unique_together': (('language_code', 'slug'),)}
      )
  
      ...
  
      def get_absolute_url(self):
          return reverse('blog:article_detail', kwargs={'slug': self.slug})
  </code></pre>
  
  <p>Here are the urls:</p>
  
  <pre><code>from django.conf.urls import include, url
  
  from .views import ArticleDetailView
  
  urlpatterns = [
      ...
      url(r'^(?P&lt;slug&gt;\w[-\w]*)/$', ArticleDetailView.as_view(), name='article_detail'),
  ]
  </code></pre>
  
  <p>And finally here is the view:</p>
  
  <pre><code>from django.views.generic import DetailView
  from parler.views import TranslatableSlugMixin
  
  from .models import Article
  
  class ArticleDetailView(TranslatableSlugMixin, DetailView):
      model = Article
      template_name = 'blog/_article.html'
  </code></pre>
  
  <p>I've created an article that is in English, French &amp; German, with a different slug for each language, lets call those:</p>
  
  <pre><code>/en/blog/english-slug
  /fr/blog/french-slug
  /de/blog/german-slug
  </code></pre>
  
  <p>I can navigate to these all correctly, but in Django CMS you have the language menu at the top that on the English page shows the links as:</p>
  
  <pre><code>/en/blog/english-slug
  /fr/blog/english-slug
  /de/blog/english-slug
  </code></pre>
  
  <p>This is fine, as that's what the TranslatableSlugMixin in the view handles (see here <a href="http://django-parler.readthedocs.io/en/latest/api/parler.views.html" rel="nofollow">http://django-parler.readthedocs.io/en/latest/api/parler.views.html</a>).</p>
  
  <p>So when I click one of the links (say the French one) the view correctly finds the correct article and redirects me to the correct url. So clicking:</p>
  
  <pre><code>/fr/blog/english-slug
  </code></pre>
  
  <p>Has taken me correctly to:</p>
  
  <pre><code>/fr/blog/french-slug
  </code></pre>
  
  <p>But here's where it's all going wrong. I now want to navigate back to the English page, which is showing as:</p>
  
  <pre><code>/en/blog/french-slug
  </code></pre>
  
  <p>But when I click the link it navigates to a 404. This is the same if I navigate to the German URL from the French one. However if I go from English to German straight away it works.</p>
  
  <p>Sorry, I know this is confusing to explain but it seems the translation works one way from base/default to other language but doesn't work correctly when swapping between languages or back to the base/default.</p>
  
  <p>Surely TranslatableSlugMixin is designed to allow this to happen?! So am I missing something here?</p>
  
  <p>Any help would be much appreciated. Happy to provide more info if necessary.</p>
  
  <p>Thanks</p>