だから私は次のモデルを持っています:
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
今私がやりたいことは、次のようなフォームを持つ add.html と呼ばれる html にフロントエンドがあることです:
<!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" />
...
を使用してフォームを保存する方法は次の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))
私がこれを実行すると、私はいつも得る"form Invalid"
ので、今私の問題は、HTMLフォーム add.html が私のモデル Recipe として正確なマッピングを持っている必要がありますか?
はいの場合、
types
対応するものを html フォーム (for )に追加するにはどうすればよいposted_on
ですか?id
によって暗黙的に作成された をどのように処理しsyncdb
ますか?- 代替手段はありますか?
Djangoを学び始めたばかりです