#python #django #django-rest-framework #django-i18n #django-modeltranslation
Вопрос:
У меня есть следующая таблица:
# parts
- name (default)
- name_en (translated)
- name_es (translated)
При заполнении name_en
и name_es
через панель администратора django name
также устанавливается, даже если я оставляю ее пустой. Значение берется из любого name_es
или name_en
, в зависимости от моей текущей локали.
Поскольку мне приходится поддерживать более 2 языков и редакторов из нескольких стран, поле по умолчанию name
стало бы беспорядочным ИМО.
Вопрос
Есть ли способ оставить его пустым или даже избежать name_en
и использовать name
вместо этого?
Извлечение кода
# settings.py
LANGUAGES = (
('en', gettext('English')),
('es', gettext('Spanish')),
)
# app/models.py
class Part(models.Model):
name = models.CharField(max_length=100, blank=True, default='')
# app/serializer.py
class PartSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Part
fields = ['name']
# app/views.py
class PartViewSet(viewsets.ModelViewSet):
queryset = Part.objects.all()
serializer_class = PartSerializer
Примечание: Я использую django-restframework
и документы django-modeltranslation
упоминания:
При создании нового набора представлений обязательно переопределите метод get_queryset , использование набора запросов в качестве свойства не будет работать, поскольку оно оценивается один раз до того, как был задан какой-либо язык.
Заранее спасибо!