我有一个支持多种语言的Django应用程序。我想添加子域名支持,以便访问“de.mysite.com”时查询德语文章,“mysite.com”查询英语内容(默认语言)。大约会有20个子域名都指向同一个Django应用。
我有一个抽象模型,其中包含所有数据字段和每种语言的派生模型。每种语言都有自己的数据库表,如下所示:
我可以获取像这样的文章(我今天已经做到了):
我该如何解析URL模式中的子域前缀,以便将其传递到文章视图中?或者在处理视图时,我应该从请求中获取此信息吗?
我有一个抽象模型,其中包含所有数据字段和每种语言的派生模型。每种语言都有自己的数据库表,如下所示:
class ArticleBase(models.Model):
title = models.CharField(max_length=240, unique=True)
date_added = models.DateField(auto_now_add=True)
class Meta:
abstract = True
# This is English, the default.
class Article(ArticleBase):
pass
class Article_de(ArticleBase):
pass
我可以获取像这样的文章(我今天已经做到了):
def article(request, title, language=None):
if language:
mod = get_model('app', 'Article_' + language)
items = mod.filter(title=title)
else:
items = Article.objects.filter(title=title)
这是我当前的URL模式:
url(r'^article/(?P<title>[a-zA-Z_-]+)/$", 'app.views.article', name='article'),
我该如何解析URL模式中的子域前缀,以便将其传递到文章视图中?或者在处理视图时,我应该从请求中获取此信息吗?