2011-11-14 17 views
5

Si verifica un errore save() got an unexpected keyword argument 'force_insert'. Da questo http://groups.google.com/group/django-users/browse_thread/thread/2471efd68d56ad59 sembra che la risposta è quella di utilizzare:Django save() ha ottenuto un errore di parola chiave inaspettato errore "force_insert"

def save(self, *args, **kwargs): 
... 
    super(SiteUser, self).save(*args, **kwargs) 

mia domanda è come si va sulla specificando force_insert=True o force_insert=False quando farlo.

Il mio codice è:

def save(self, force_insert=False, force_update=False): 
     if not self.id: 
     self.pub_date = datetime.datetime.now() 
     self.updated_date = datetime.datetime.now() 
     self.description_html = markdown(self.description) 
     self.highlighted_code = self.highlight() 
     super(Snippet, self).save(force_insert, force_update) 

risposta

3

kwargs è un dict. Impostalo come qualsiasi altro valore di dict.

kwargs['force_insert'] = True 
+0

Posso vedere che funziona se si vuole sovrascrivere il valore, ma come lo si specifica solo come valore predefinito come nel mio codice? – Superdooperhero

+0

Controllare per vedere se esiste già nel dizionario prima. –

+0

cambiato il mio codice per: def salvare (auto, * args, ** kwargs): se non 'force_insert' in kwargs: kwargs [ 'force_insert'] = false se non 'force_update' in kwargs: kwargs [' force_update '] = false se non self.id: self.pub_date = datetime.datetime.now() self.updated_date = datetime.datetime.now() self.description_html = markdown (self.description) sé. evidenziato_code = self.highlight() super (Snippet, self) .save (* args, ** kwargs) Ma continua a ottenere lo stesso errore. Force_insert non è più supportato in Django 1.3.1 o cosa sto facendo male? – Superdooperhero

Problemi correlati