问题描述
我有下表:
# parts
- name (default)
- name_en (translated)
- name_es (translated)
通过 django 管理面板填充 name_en
和 name_es
时,name
也会被设置,即使我将其保留为空。该值取自 name_es
或 name_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-restframework
和 django-modeltranslation
提及的 docs:
创建新的视图集时,确保覆盖 get_queryset 方法,使用 queryset 作为属性将不起作用,因为它正在 在设置任何语言之前评估一次。
提前致谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)