我想让用户通过单击国家标志来更改网站的语言。
在我的 models.py 文件中,我有:
class RegularUser(models.Model):
(...)
language = models.CharField(max_length = 10, null=True, blank=True, choices=[(a, _(b)) for (a,b) in settings.LANGUAGES], verbose_name=_("Language"))
我还在那里做了一个功能:
def set_language(self, new_lang):
lllang = self.language
lllang = new_lang
在我的 html 文件中,我有:
function setLang(lang){
language = document.getElementById("language")
lang_form = document.getElementById("language_form")
language.value= lang
lang_form.submit()
{{request.user.get_profile.set_language(lang) }}
}
此功能设置为某个按钮为“onclick”。
这应该做两件事:
1.立即更改语言(已完成)
2.更改数据库中的uset语言,所以下次我们登录时 - 它将是我们现在设置的(它不起作用:( ) 我收到这样的错误:
TemplateSyntaxError at /
Could not parse the remainder: '("lang")' from 'request.user.get_profile.set_language("lang")'
只是告诉 - 如果我会说:
{{request.user.get_profile.get_language}}
然后我得到我的语言的代码,所以没关系。来自 models.py 的 get_language 函数:
def get_language(self):
if self.language:
return self.language
elif self.location and self.location.country:
return self.location.country.iso.lower()[:2]
else:
return None
嗯……有什么帮助吗?我只是以错误的方式给出“lang”,还是我在 Django 中没有得到任何东西?