2010-09-11 7 views
18

Kann ich den Modellfeldtyp aus einem Modell-Queryset in Django abrufen?Kann ich Modellfeldtyp aus einem Modellabfragenset in Django abrufen?

Zum Beispiel: a ist b queryset Modell und das b Modell hat folgende Felder:

  • f: Charfield
  • g: foreignkey
  • h: ManyToMany

Gibt es eine Möglichkeit, Feld g 's-Typ von Queryset a zu bekommen? thx.

+0

Warum würden Sie den Feldtyp benötigen? Wäre es nicht einfacher, die Ergebnisse zu überprüfen und den Feldtyp aus dem Ergebnis zu bestimmen. – Dean

Antwort

34

Ich habe die Antwort:

a.model._meta.get_field('g').get_internal_type() 
+1

Ich bin neu bei Python, dachte aber, dass der führende Unterstrich "nicht verwenden" bedeutet. – TimP

+3

@TimP normalerweise der führende Unterstrich bedeutet "nicht verwenden". Ich entnehme jedoch dem Lesen von SO, dass das '_meta'-Objekt in Django in den letzten Versionen zunehmend kanonisch geworden ist und intern in Django intensiv genutzt wird. Ich sage, gehen Sie voran und verwenden Sie es, aber stellen Sie sicher, dass Sie Ihre Tests ausführen (Sie schreiben Komponententests, richtig?), Wenn Sie Django-Versionen aktualisieren. Aber im Allgemeinen haben Sie Recht, vermeiden Sie die Verwendung von _single_leading_underscore-Symbolen aus Bibliotheken von Drittanbietern in Python. – wkschwartz

Verwandte Themen