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 pro Benutzer-View-Caching
  • Erstellen eines Dropdown-Menüs von Mitglieds-IDs
  • Passende Abfrage existiert nicht Fehler in Django
  • Rendering verschiedener Teil der Vorlagen nach den Anforderungswerten in Django
  • Wie bekomme ich Hostname oder IP in settings.py, so dass ich es verwenden kann, um zu entscheiden, welche App-URLs zu verwenden
  • Überprüfen eines Formulars mit überladenem _init_
  • Kann ich ein Django-Formular ohne Modell haben
  • Wie bekomme ich einen App-Namen mit Python in Django
  • Django is_ajax Geschichte zurück
  • Wie man eine Audio-Datei durch http Antwort in Django (Python)
  • Importieren von JSON-Daten in Django View / Template
  • Python ist die beste Programmiersprache der Welt.