Getting a ValueError: ungültiges Literal für int () mit base 10: '' Fehler und weiß nicht warum

Ich weiß, das ist schon vorher gefragt worden, aber für meinen Umstand kann ich nicht herausfinden, warum dies geworfen wird

Wenn ich versuche, meine Berechnungen auszuführen, bekomme ich diesen Fehler von meiner Konsole:

ValueError: invalid literal for int() with base 10: ''

Und es heißt, es kommt aus

 File "/var/sites/live_mbpathways/moneybroker/apps/investments/ajax.py", line 30, in calc_cdic investments = Investment.objects.all().filter(plan = plan, financial_institution=fiid, maturity_date__gte = now).order_by('maturity_date').exclude(id=investment_id) 

Weiß jemand, warum das passieren könnte?

Hier ist mein ajax.py wo dieser Code befindet:

 @login_required @moneybroker_auth @csrf_exempt def calc_cdic(request, plan, investment_id=None, *args, **kwargs): from investments.models import Investment from financial_institutions.models import FinancialInstitution from profiles.models import Profile from plans.models import Plan from datetime import datetime now = datetime.now() json = {} data = request.POST if request.is_ajax(): total = 0 fiid = data.get('financial_institution') amt = data.get('amount') or 0 pay_amt = data.get('pay_amount') or 0 mat_amt = data.get('maturity_amount') or 0 investments = Investment.objects.all().filter(plan = plan, financial_institution=fiid, maturity_date__gte = now).order_by('maturity_date').exclude(id=investment_id) for i in investments: total += i.maturity_amount print total json['total'] = float(str(total)) json['amt'] = float(str(amt)) json['pay_amt'] = float(str(pay_amt)) json['mat_amount'] = float(str(mat_amt)) json['fiid'] = fiid print json return HttpResponse(simplejson.dumps(json), mimetype='application/json') 

4 Solutions collect form web for “Getting a ValueError: ungültiges Literal für int () mit base 10: '' Fehler und weiß nicht warum”

Die int () – Funktion wirft eine Ausnahme aus, weil du versuchst, etwas zu konvertieren, das keine Nummer ist.

Ich schlage vor, dass Sie erwägen, Debugging-Druck-Anweisungen verwenden, um herauszufinden, welche Pläne und Fiid's sind anfangs und wie sie sich ändern.

Eine andere Sache, die Sie tun können, ist, den Anruf zu int () mit try / catch zu verpacken

 val='a' try: int_val = int(val) except ValueError: print("Failure w/ value " + val) 

Irgendwo in dieser Kette von Anrufen, Sie übergeben eine leere Zeichenfolge, die der Code dann versucht, in eine Ganzzahl zu konvertieren. Melden Sie Ihre Eingabe zu der Zeit, um es zu verfolgen.

Schlagen Sie sich die Werte von plan und fiid , weil entweder plan oder fiid ist nicht auf den Wert, den Sie denken.

Für mich musste ich den Migrationsordner löschen und die Schritte in der Top-Antwort in diesem Link folgen und dann die Migrationen erneut ausführen, und dann ging der Fehler weg und es funktionierte.

  • Django is_ajax Geschichte zurück
  • Wie bekomme ich einen absoluten Pfad, nachdem ich in Django hochgeladen wurde?
  • Wie initiiere ich Werte für Felder in einer Form für die Bearbeitung in einer Vorlage
  • Importieren von JSON-Daten in Django View / Template
  • DateTimeField queryset gibt keine in Django zurück
  • Erstellen eines Dropdown-Menüs von Mitglieds-IDs
  • Django - sammeln von daten aus einem HTML <select>
  • Kann ich ein Django-Formular ohne Modell haben
  • Django: return string aus der Ansicht
  • Django entfernen Quelldateien und generiere pyc Dateien
  • Benötigen Sie eine erforderliche und optionale Felder in Django Formset
  • Python ist die beste Programmiersprache der Welt.