Il 07/11/2012 15:17, Nicola Larosa ha scritto:

numero1 = str2int(get_num(...))
numero2 = str2int(get_num(...))
numero3 = str2int(get_num(...))
...
if numero1 and numero2 and numero3 and ...:
         my_obj.codice1 = numero1
         my_obj.codice2 = numero2
         my_obj.codice3 = numero3


Credo di non aver presentato bene il problema tralasciando qualche informazione ....

Devo inserire dati letti da un file in un model di Django

In base ai parametri passati, get_num() mi ritorna un pezzo della stringa letta dal file, che devo eventualmente convertire in numero e assegnare a un campo del model.

Alcuni campi del model sono obbligatori (quelli che verifico non siano Null) mentre altri campi posso anche essere Null

Inoltre sto usando il metodo "bulk_create" di Django seguendo questo:
http://www.caktusgroup.com/blog/2011/09/20/bulk-inserts-django/
per tanto stocco un po' di oggetti in una lista e poi li salvo in blocco.

Quindi:

- il controllo non posso farlo su get_num perche' in alcuni casi Null puo' anche andar bene

- a quanto pare se assegno Null a un campo che non puo' esserlo, me ne accorgo solo quando cerco di salvare su database, quindi non servirebbe:

try:
  my_obj.codice1 = str2int(get_num(...))
  my_obj.codice2 = str2int(get_num(...))
  my_obj.codice3 = str2int(get_num(...))
except:
  continue

perche' mi accorgerei di aver assegnato un valore scorretto solo dopo aver elaborato e star salvando centinaia di oggetti.


Quindi per ora il metodo che sto usando mi risulta l'unica soluzione.


_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a