ユーザーが国旗をクリックしてサイトの言語を変更できるようにしたい。
私の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」としていくつかのボタンに設定されています。
これは 2 つのことを行う必要があります:
1. すぐに言語を変更します (完了です)
2. データベースの使用言語を変更します。次回ログインするときは、現在設定したとおりになります (動作しません :( ) 次のようなエラーが表示されます。
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
うーん...何か助けて?「言語」を間違った方法で指定しただけですか、それとも Django で何かを得られませんか?