Django-Modell der Rückkehr NoneType
Habe ich ein Modell Produkt -
es hat zwei Felder Größe & Farben u.a.
colours = models.CharField(blank=True, null=True, max_length=500)
size = models.CharField(blank=True, null=True, max_length=500)
Meiner Ansicht nach habe ich
current_product = Product.objects.get(slug=title)
if len(current_product.size) != 0 :
current_product.size = current_product.size.split(",")
und bekomme diese Fehlermeldung:
object of type 'NoneType' has no len()
Was ist NoneType und wie kann ich diese testen?
- "Objekt vom Typ NoneType" ist etwas, Sie können sich in der Python-Dokumentation. Es ist die Konstante None. Das Modell ist keine Rückkehr "NoneType", es ist Keine Rückkehr, das ist ein Objekt von NoneType.
Du musst angemeldet sein, um einen Kommentar abzugeben.
NoneType
ist der Typ, derNone
Wert hat. Sie möchten, ändern Sie den zweiten Ausschnitt zuNoneType ist Pythons NULL-Typ, was bedeutet "nichts", "undefined". Es hat nur einen Wert: "None". Beim anlegen eines neuen Modell-Objekt, dessen Attribute sind in der Regel initialisiert, Keine, Sie können überprüfen, dass durch den Vergleich:
Kann ich am besten erklären, die NoneType Fehler mit diesem Beispiel der fehlerhafte code:
s.remove()
gibt nichts auch bekannt als NoneType. Der richtige WegIch weiß nicht, Django, aber ich gehe davon aus das irgendein von ORM ist beteiligt, wenn Sie dies tun:
An diesem Punkt sollten Sie immer überprüfen, ob man bekommt nichts zurück ("None" ist das gleiche wie "null" in Java oder 'nil' in Lisp mit dem feinen Unterschied, dass 'None' ist ein Objekt in Python). Dies ist in der Regel die Art und Weise ORMs Karte die leere Menge für die Programmiersprache.
EDIT:
Gee, ich sehe gerade, dass es
current_product.size
das istNone
nichtcurrent_product
. Wie gesagt, ich bin nicht vertraut mit Djangos ORM, aber dies scheint seltsam, dennoch: ich würde entweder erwarten, dasscurrent_product
zuNone
odersize
mit einem numerischen Wert.