2017-11-16 1 views
0

Ich verwende Django und DRF ich viele Dezimalfeldern in Modellen, wieDjango übriges Rahmenformat Dezimalfeld auf 2 Dezimalstellen (für die Ausgabe)

amount = models.DecimalField(max_digits=16, decimal_places=4) 

Ich möchte Ausgabe zwei Dezimalstellen formatiert werden, in jedem Serializer Feld kann dies tun

amount = serializers.DecimalField(max_digits=16, decimal_places=2) 

Es gibt einen leichteren Weg?

+0

das ist der einzige Weg es zu tun :) –

+1

Sie meinen leichter als einen Kwarg ändern? –

+0

@MarcusLind Vielleicht meine Idee ist schlecht, ich wollte process_response-Methode in Middleware verwenden, also nur einen Ort ändern –

Antwort

0

In DRF gibt es eine Möglichkeit, nur die Optionen außer Kraft zu setzen, aber nicht das gesamte Feld:

class MySerializer(serializers.ModelSerializer): 

    class Meta: 
     model = MyModel 
     fields = ('amount',) 
     extra_kwargs = { 
      'amount': {'max_digits': 16, 'decimal_places': 2} 
     } 

Oder wenn Sie viele gleiche Dezimalfeldern haben, sollten Sie Ihre eigenen DecimalField mit vordefinierten allgemeinen Optionen verwenden.

Verwandte Themen