当语言会话密钥不是英语时,Django表单无效

当语言会话密钥不是英语时,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

在我的项目中,我设置了用户在概要文件中选择的语言(英语、西班牙语等)

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(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是否支持给定的语言。

仍然存在相同的问题。习语变化正确,但如果我使用西班牙语或德语,则形式无效