Я использую Django 3.0.4 и Хрустящие формы 1.9.0
У меня есть следующая модель:
class App(models.Model):
name = models.CharField(max_length=256, db_index=True, verbose_name=_('Name'))
platform = models.ForeignKey(Platform, on_delete=models.CASCADE, verbose_name=_('Platform'))
package_name = models.CharField(max_length=512, unique=True, verbose_name=_('Package name'))
created_at = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name=_('Created Date'))
Форма:
class CreateAppForm(forms.ModelForm):
class Meta:
model = App
fields = ('name', 'platform', 'package_name',)
localized_fields = '__all__' # I've tried to enumerate fields as tuple
# labels = { # I've tried to uncomment it
# 'name': _('Name'),
# 'platform': _('Platform'),
# 'package_name': _('Package name'),
# }
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['platform'].queryset = Platform.objects.filter(is_enabled=True)
А template:
{% extends 'base.html' %}
{% load i18n %}
{% load crispy_forms_tags %}
{% block title %}{% trans "Create application" %}{% endblock %}
{% block page_title %}{% trans "Create application" %}{% endblock %}
{% block content %}
<div class="row">
<div class="col">
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">{% trans "Create application" %}</h6>
</div>
<div class="card-body">
<form class="form" action="{% url 'apps:create' %}" method="post">
{% csrf_token %}
{{ form|crispy }}
<button class="btn btn-success btn-lg" type="submit"><i class="fa fa-check"></i> {% trans "Create" %}</button>
</form>
</div>
</div>
</div>
</div>
{% endblock %}
Все строки в файлах .po локализованы и скомпилированы (и работают везде, кроме форм).
Форма отображается правильно, но метки полей не локализованы:

Что не так?