2010-09-11 19 views
18

¿Puedo obtener el tipo de campo modelo de un queryset modelo en Django?¿Puedo obtener el tipo de campo de modelo de un queryset modelo en Django?

Por ejemplo: a es queryset b de modelo y el modelo b tiene los siguientes campos:

  • f: Charfield
  • g: ForeignKey
  • h: muchosamuchos

¿Hay cualquier forma de obtener el campo g del tipo de consulta a? thx.

+0

¿Por qué necesitaría el tipo de campo? ¿No sería más fácil verificar los resultados y determinar el tipo de campo a partir del resultado? – Dean

Respuesta

34

tengo la respuesta:

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

Soy nuevo en python, pero pensé que el guión bajo significaba 'no usar'. – TimP

+3

@TimP, por lo general, el subrayado inicial significa "no utilizar". Sin embargo, de la lectura de SO he deducido que el objeto '_meta' ha sido cada vez más canónico en Django en las últimas versiones, y se usa mucho internamente en Django. Le digo que continúe y lo use, pero asegúrese de ejecutar sus pruebas (está escribiendo pruebas de unidades, ¿no?) Cuando actualice las versiones de Django. Pero, en general, tiene razón, evite usar los símbolos _single_leading_underscore de bibliotecas de terceros en Python. – wkschwartz

Cuestiones relacionadas