当语言会话密钥不是英语时,Django表单无效
在我的项目中,我设置了用户在概要文件中选择的语言(英语、西班牙语等) view.py当语言会话密钥不是英语时,Django表单无效,django,forms,Django,Forms,在我的项目中,我设置了用户在概要文件中选择的语言(英语、西班牙语等) view.py def set_idiom(request): from django.utils import translation user = request.user if request.user.is_authenticated: user_language = user.profile.idiom translation.activate(use
def set_idiom(request):
from django.utils import translation
user = request.user
if request.user.is_authenticated:
user_language = user.profile.idiom
translation.activate(user_language)
request.session[translation.LANGUAGE_SESSION_KEY] = user_language
else:
user_language = 'en'
translation.activate(user_language)
request.session[translation.LANGUAGE_SESSION_KEY] = user_language
print(user_language)
return user_language
forms.py
class CreateCourse(forms.ModelForm):
class Meta:
model = Courses
fields = ('course_name', 'course_cant', 'course_description', 'course_target_lng', 'course_expert_lng', 'course_link_ptn', 'course_start', 'course_end',)
widgets = {
'course_name': forms.TextInput(attrs={'placeholder':u'Course name...', 'class': 'form-control'}),
'course_cant': forms.NumberInput(attrs={'class': 'form-control'}),
'course_description': forms.Textarea(attrs={'class': 'form-control'}),
'course_target_lng': forms.Select(attrs={'placeholder':u'Select a target idiom', 'class': 'form-control', }),
'course_expert_lng': forms.Select(attrs={'class': 'form-control custom-select'}),
'course_start': forms.DateInput(attrs={'autocomplete': 'off', 'placeholder':u'Select a date', 'class': 'form-control'}),
'course_end': forms.DateInput(attrs={'autocomplete': 'off', 'placeholder':u'Select a date', 'class': 'form-control'}),
}
每次我使用信息时,如果用户选择不同的习语作为英语,则表单无效。我认为这是因为语言代码中不存在idom,请首先检查它:
from django.utils.translation import check_for_language
user_language = user.profile.idiom
if user_language and check_for_language(user_language ):
translation.activate(user_language)
else:
raise Exeption()
django.utils.translation.check_for_language(),用于检查django是否支持给定的语言。
仍然存在相同的问题。习语变化正确,但如果我使用西班牙语或德语,则形式无效