2017-07-25 3 views
0

Ich habe eine Ansicht und ich versuche, eine einfache mathematische Berechnung durchzuführen, und ich bekomme einen Fehler, der mich abwirft.Ich kann keine einfache Berechnung in Django machen

So habe ich eine Methode, die in zwei Variablen, einem Dezimalwert und einer Ganzzahl aufnehmen wird. Ich möchte die Zahlen nehmen und die Dezimalzahl durch die ganze Zahl teilen. Ich erhalte die folgende Fehlermeldung und ich weiß nicht, warum ...

dies ist die Methode

def SplitEven(record, amount): 
    record_count = record.count 
    print(record_count) 
    print(amount) 
    split_amount = amount/record_count 
    print(split_amount) 
    rounded_amount = round(split_amount, 2) 
    print (record_count) 
    print (amount) 
    print (split_amount) 
    return rounded_amount 

Dies ist die Fehlermeldung:

unsupported operand type(s) for /: 'str' and 'int' 

C:\Users\OmarJandali\Desktop\opentab\opentab\tab\views.py in addTransaction 
           taxSplit = SplitEven(record, amount) 

C:\Users\OmarJandali\Desktop\opentab\opentab\tab\views.py in SplitEven 
       split_amount = amount/record_count 

Hier ist, was oben aus dem Druck kommt Aussagen:

[25/Jul/2017 16:14:10] "GET /static/css/blog.css HTTP/1.1" 404 1649 
6 
6 
6.00 
[25/Jul/2017 16:15:05] "POST /39/72/add_transaction/ HTTP/1.1" 500 83164 
+0

Drucken Sie 'Typ (r ecord_count) 'und' type (amount) 'und sieh, was du bekommst. – Justin

+0

Yeah der Betrag wird als String gedruckt .... –

+0

So hatte ich die Eingabe als Text und änderte es in eine Nummer ... aber es ist immer noch als String angezeigt .... –

Antwort

1
from decimal import Decimal 

def SplitEven(record, amount): 
    record_count = Decimal(record.count) 
    split_amount = Decimal(amount)/record_count 
    rounded_amount = round(split_amount, 2) 
    return rounded_amount 
+0

Wissen Sie, was Import-Anweisung ist für Dezimal –

+0

'von Dezimal-Import Dezimal' – Ykh

+0

Ich werde es ausprobieren ... –