0

私は次の表を持っています:

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

埋めるときname_en、およびname_esdjango管理パネルを介して、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

新しいビューセットを作成するときは、必ず get_queryset メソッドをオーバーライドしてください。プロパティとして queryset を使用しても機能しません。これは、言語が設定される前に一度評価されるためです。

前もって感謝します!

4

0 に答える 0