2010-07-07 5 views
0

Je permets aux utilisateurs d'afficher et de modifier quelques champs d'un enregistrement de base de données représenté par un ModelForm. Voici un extrait du code de la vue:Django: Impossible d'enregistrer un formulaire

def edit(request, id): 
    obj = get_object_or_404(Record, pk=record_id) 
    if request.method == 'POST': 
     form = forms.RecordForm(request.POST, instance=obj) 
     if form.is_valid(): 
      form.save() 

Le problème est que parce que je ne passe pas tous les champs du modèle, form.is_valid() échoue avec une erreur de valeurs manquantes. Comment puis-je mettre à jour un enregistrement existant avec seulement le sous-ensemble de champs d'enregistrement que je montre à l'utilisateur?

Répondre

3

Utilisez le tuple fields dans la définition Meta du formulaire pour vous assurer que le formulaire inclut uniquement les champs dont vous avez besoin - ou utilisez exclude pour supprimer ceux que vous ne voulez pas.

+0

Cela a fonctionné. Je vous remercie. – FunLovinCoder

+0

Pas de problème. Pourquoi est-ce que je veux toujours dire "Tu sais, sauver une forme, c'est comme faire l'amour à une belle femme ..." chaque fois que je vois une de tes questions? –

+0

Je suppose que la phrase fonctionne aussi dans le monde de la programmation :-) – FunLovinCoder

Questions connexes