probablement une question idiote, mais je ne suis pas sûr de savoir comment gérer ce 'correct'.django - comment enregistrer le formulaire (pas un modelForm)
J'ai une forme normale avec certains champs. Je peux insérer des données sans problèmes. Lorsque je veux modifier un enregistrement, j'utilise la fonction "model_to_dict" pour remplir le formulaire. Après avoir modifié un enregistrement, je veux l'enregistrer, et mes problèmes commencent ici.
Le document django indique qu'un modèle crée ou met à jour automatiquement l'enregistrement en fonction de la valeur PK. si la valeur pk existe, c'est une mise à jour, sinon un insert. J'ai donc créé cette fonction de sauvegarde:
def save(self, primary_key=0):
mymodel = Somemodel(pk=primary_key,
samplefield=self.cleaned_data['samplefield'],
)
mymodel .save()
print 'PK:'+str(d.pk)
# Handle the MultipleChoiceField's
for x in self.cleaned_data['paymentMethod']:
x.mymodel_set.add(d)
Donc, cela fonctionne très bien quand je modifier un enregistrement. Mais quand j'insère un nouvel enregistrement, il est bien inséré, mais mymodel.id = 0 ce qui signifie que je ne peux pas enregistrer les relations pour MultipleChoiceFields. Donc, je voudrais savoir si c'est un bon moyen de gérer cela? Et pourquoi mymodel.id = 0 après avoir enregistré le modèle?
Super ça marche! Merci beaucoup;) – Ben