Python Django模型表单字段语言未更改

Python Django模型表单字段语言未更改,python,django,django-forms,django-templates,django-crispy-forms,Python,Django,Django Forms,Django Templates,Django Crispy Forms,我正在使用django 2.2。和python 3.6。引导程序4。 我有一个模板和酥脆的形式插入模板。 此表单是根据模型创建的。 模型中有一个imagefield字段 photo = models.ImageField(upload_to="staff/", null=True, blank=True, verbose_name=_("Fotoğraf")) crispyform正在模板中创建字段,但字段中显示的语言为英语。但我想展示土耳其语。 “选择文件并浏览”选项应为土耳其语。 因此,我

我正在使用django 2.2。和python 3.6。引导程序4。 我有一个模板和酥脆的形式插入模板。 此表单是根据模型创建的。 模型中有一个imagefield字段

photo = models.ImageField(upload_to="staff/", null=True, blank=True, verbose_name=_("Fotoğraf"))
crispyform正在模板中创建字段,但字段中显示的语言为英语。但我想展示土耳其语。 “选择文件并浏览”选项应为土耳其语。 因此,我将settings.py更改为

LANGUAGE_CODE = 'tr-tur'
但它仍然被写入选择文件并在页面的字段中浏览

您可以在屏幕截图中看到,除了“选择文件”和“浏览”之外,所有内容都是土耳其语。“选择文件”和“浏览”不会被翻译,因为这是引导生成字段的一部分

您可以尝试创建伪类,如翻译或自定义字符串部分所述。简而言之,作为CSS代码,它应该是这样的:

$custom-file-text: (
  en: "Browse",
  es: "Elegir"
);

问题解决了。首先要更改“选择文件”部分:

添加将更改标签textContent的脚本

<script>
var input = document.getElementById('id_photo');
var label = input.labels[1];
label.textContent = 'Dosya Seçin'
</script>

var input=document.getElementById('id_photo');
var label=input.labels[1];
label.textContent='Dosya Seçin'

其次,要更改浏览部分,您必须编辑bootstrap.min.css,并将自定义文件标签更改为内容:“浏览”到内容:“您想要什么”可能有多个内容:“浏览”定义,全部更改。

尝试更改Django内置表单中的默认语言,通过将
django.middleware.locale.localemidleware'
包含在
中间件
中的
设置.py中