mir ist folgendes Aufgefallen, dazu mal hier ein Ausschnitt meines Models:
Code: Alles auswählen
unit_price = models.DecimalField(default=Decimal('10.00'), null=True, decimal_places=2, max_digits=12)
quantity = models.DecimalField(default=Decimal('1.00'), null=True, max_digits=5, decimal_places=2)
tax_rate = models.DecimalField(default=Decimal('0.19'), null=True, decimal_places=2, max_digits=3)
Dazu habe ich noch ein paar Properties:
Code: Alles auswählen
@property
def item_net_amount(self):
return self.quantity * self.unit_price
@property
def item_gross_amount(self):
return self.item_net_amount+ self.item_tax_amount
@property
def item_tax_amount(self):
return self.item_net_amount * self.tax_rate
Code: Alles auswählen
class InvoiceSerializer(serializers.ModelSerializer):
class Meta:
model = Invoice
fields = "__all__"
Code: Alles auswählen
{
"id": 3,
"unit_price": "10.00",
"quantity": "1.00",
"tax_rate": "0.19",
"item_net_amount": 10.0,
"item_gross_amount": 11.9,
"item_tax_amount": 1.9
},
Nun meine Fragen:
1) Warum gibt es überhaupt einen unterschied?
2) Welche Variante sollte beim serialisieren bevorzugt werden? Ich denke, dass die String-Variante nicht verkehrt ist, um mögliche ungewollte Umwandlungen in float zu verhindern?
Vielen Dank, schönes Wochenende euch!
LG Robin