django-modeltranslation:如何保持默认字段为空?

问题描述

我有下表:

# parts
- name (default)
- name_en (translated)
- name_es (translated)

通过 django 管理面板填充 name_enname_es 时,name 也会被设置,即使我将其保留为空。该值取自 name_esname_en,具体取决于我当前的语言环境。

由于我必须支持来自多个国家/地区的 2 种以上的语言和编辑器,因此认字段 name 会在 IMO 中变得一团糟。

问题

有没有办法让它保持为空,甚至避免使用 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-restframeworkdjango-modeltranslation 提及的 docs

创建新的视图集时,确保覆盖 get_queryset 方法,使用 queryset 作为属性将不起作用,因为它正在 在设置任何语言之前评估一次。

提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)