Django : l'enregistrement du formulaire dans la base de données

J'ai donc le modèle suivant :

class Recipe(models.Model):
        title = models.CharField(max_length=100)
        ingredients = models.TextField(max_length=200,help_text="Put the ingredients required for the recepies here !")
        instructions = models.TextField(max_length=500)

        posted_on = models.DateTimeField('Posted On')

        def __unicode__(self):
                return self.title

Maintenant ce que je veux faire, c'est que j'ai un front-end html appelé add.html qui a une forme comme:

<!DOCTYPE html>


<head><title>New Recipe</title></head>
<body>
<h1>Add A new Recipe Here</h1>

<form action="/recipes/add/" method="post">
{% csrf_token  %}

<label>ID<label>
<input type="number" name="id"></input><br />

<label>Title </label>
<input type ="text" name="title"><br />

<label>Ingredients</label>
<input type="text" name="ingredients" />
<br />

<label>Instructions </label>
<input type="text" name="instructions" />
...

Ici est de savoir comment je suis de sauvegarder le formulaire à l'aide de ModelForm:

def add(request):
        if request.method == 'POST':
                form = RecipeForm(request.POST)
                if form.is_valid():

                        form.save()
                        #redirect
                        return HttpResponse("Thank you")
                else:
                        return HttpResponse("Form Not Valid")
        else:
                form = RecipeForm()

                context = Context({'form':form,})
                context.update(csrf(request))
                template = loader.get_template('myApp/add.html')
                return HttpResponse(template.render(context))

Lorsque je l'exécute j'ai toujours "form Invalid"
Alors maintenant, mon problème est de savoir si le formulaire html add.html ont exactement les mappages de mon modèle de Recette ?

Si oui ,alors

  1. Comment puis-je ajouter le correspondant types dans le formulaire html (pour posted_on) ?
  2. Comment gérer le id créé implicitement par syncdb?
  3. Est-il une alternative ?

J'ai juste commencé à apprendre Django

OriginalL'auteur Deepankar Bajpeyi | 2013-02-01