不是自己创建表单,而是使用ModelForm
,它会将表单绑定到应用中的模型,自动创建需要保存或编辑其链接模型实例的字段类型。
最简单的方法为Booking
实例添加到你的数据库是使用一个ModelForm
:
from django.db import models
from django.forms import ModelForm
class Booking(models.Model):
...
class BookingForm(ModelForm):
class Meta:
model = Booking
见the Django docs的更多信息,ModelForm
秒。接下来,在您的视图中创建的BookingForm
的实例传递在你的模板方面:
def your_view(request):
if request.method == 'POST':
form = BookingForm(request.POST)
if form.is_valid():
booking = form.save()
return HttpResponseRedirect('/success/url/')
else:
form = BookingForm()
return direct_to_template(request, 'your/template.html', {
'form': form
})
有关处理表单在您的看法Django文档看using a form in a view更多信息。接下来,在您的模板,你可以简单地打印整个形式(和所有相关的字段),像这样:
<form action="" method="post">
{{ form.as_p }}
<input type="submit" name="submit" value="submit">
</form>
对模板形式的更多信息,请displaying a form using a template。
谢谢马库斯。但我已经在为我的表单使用`ModelForm`。也许我没有正确解释自己。我有一张预订表格。但在表单中我需要添加许多类(这是一种表单本身),我希望用一种形式来做到这一点。而不是2个单独的 – sdk900 2011-01-31 03:39:17