2011-02-18 14 views

Respuesta

22

blank=True le está diciendo al sitio de administración que el campo puede dejarse en blanco.

A menos que configure null=True también, su base de datos se debería quejar si ha intentado ingresar un valor en blanco.

Si su campo de clave foránea puede tomar valores nulos, devolverá None en nulo, por lo tanto, para verificar si se "dejó en blanco", simplemente puede verificar si el campo es None.

>>> obj.foreignkeyfield is None 
True 


if not obj.foreignkeyfield: 
    print "This field was left blank" 
+0

¿Cuál es la diferencia entre 'is None' y' if not'? – hobbes3

+5

@ hobbes3, en el caso de un campo FK, realmente no importa. Usé una expresión para mostrar la salida de la consola como un ejemplo. 'is None' solo es True si' val == None', mientras que 'if not' simplemente verifica' bool (val) == False'. 'bool (0)', 'bool ('')' todos evalúan a False. –

Cuestiones relacionadas