41 votes

Comment puis-je remplir un formulaire avec des données d'objet modèle ?

Je veux remplir le formulaire avec les données de l'instance de modèle. Mais mon formulaire a moins de champs que model. Si j'ai un code comme celui-ci :

 class Item(models.Model)
    name = models.CharField(max_length=100)
    price = models.PositiveIntegerField()

class ItemForm(forms.Form):
    name = forms.CharField()

Quel est le problème avec cette fonction et à quoi elle devrait ressembler pour être bonne ?

 def bound_form(request, id):
    item = Item.objects.get(id=id)
    form = ItemForm(item.name)
    return render_to_response('bounded_form.html', {'form': form})

J'obtiens une erreur comme celle-ci : AttributeError: 'ItemForm' object has no attribute 'get'

47voto

Cadilac Points 1040
def bound_form(request, id): 
    item = Item.objects.get(id=id) 
    form = ItemForm(initial={'name': item.name}) 
    return render_to_response('bounded_form.html', {'form': form}) 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X