django - URL and database routing based on language -


i have urls in following form:

http://example.com/[language_code]/xxx 

i need do:
1. based on language code, want select appropriate db or raise http 404 if language code not supported.
2. i'd save language code in request object preferably, can access in templates.
3. i'd urls.py don't this:

url(r'^(?p<lang>\w+)/xxx/$', 'my_app.views.xxx') 

but rather:

url(r'^xxx/$', 'my_app.views.xxx') 

so django ignore language code in url.

can tell me please if doable django or should solution?

i managed figure out. first of need read docs: https://docs.djangoproject.com/en/dev/topics/i18n/translation/

@1 - wrote own middleware based on http://djangosnippets.org/snippets/2037/ (it's crucial put middleware first 1 in middleware_classes list)

import threading django.http import http404 django.conf import settings  request_cfg = threading.local()   class routermiddleware(object):     def process_view(self, request, view_func, view_args, view_kwargs):         lang = request.language_code         if lang in settings.languages:             request_cfg.lang = lang         else:             raise http404()      def process_response(self, request, response):         if hasattr(request_cfg, 'lang'):             del request_cfg.lang         return response   class databaserouter(object):     def _default_db(self):         if hasattr(request_cfg, 'lang') , request_cfg.lang in settings.databases:             return request_cfg.lang         else:             return 'default'      def db_for_read(self, model, **hints):         return self._default_db()      def db_for_write(self, model, **hints):         return self._default_db() 

@2 - can accessed using request.language_code

@3 - it's explained in docs: https://docs.djangoproject.com/en/dev/topics/i18n/translation/#internationalization-in-url-patterns


Popular posts from this blog

How to calculate SNR of signals in MATLAB? -

c# - Attempting to upload to FTP: System.Net.WebException: System error -

ios - UISlider customization: how to properly add shadow to custom knob image -