Django i18n pattern
What you are experiencing is that your language selection is not sticking as it should and so to do this there are a few things to check.
My guess is that you have 'en' as your LANGUAGE_CODE in your settings so that will always be your fallback. Quite often the reason that you cannot get your language to stick is that you may not have the correct middleware in your settings MIDDLEWARE_CLASSES.
Try the following checklist to see if you have everything you need:

Add SessionMiddleware and LocaleMiddleware to your middleware stack in your settings, ensure the SessionMiddleware comes before LocaleMiddleware as it relies on the use of sessions and it is responsible for fetching your desired language from a request via the url/session/cookie/request header in that order I believe, then uses your fallback language if all else fails.
Ensure all languages that you want to serve are in your LANGUAGES list in settings

That should hopefully do the trick so hope that helps.
I'm using internationalization.
So, everyhting works fine, when I access http://localhost:8000/en/ and http://localhost:8000/de/
But when I access http://localhost:8000/ it redirects me to http://localhost:8000/en/ even when the last accessed page was http://localhost:8000/de/
Basically, I want to save language code, based on the page accessed, e.g. if I access http://localhost:8000/de/ then language is german. Next, when I access http://localhost:8000, it should point me to http://localhost:8000/de/, not default http://localhost:8000/en/
How this can be done?