我在django网站上看到了表单文档,我想知道如何将数据添加到数据库中。
那就是HTML:
<form action="/your-name/" method="post">
<label for="your_name">Your name: </label>
<input id="your_name" type="text" name="your_name" value="{{ current_name }}">
<input type="submit" value="OK">
</form>
这是文档中给出的函数示例:
def get_name(request):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('/thanks/')
else:
form = NameForm()
return render(request, 'name.html', {'form': form})
现在我需要看看如何将名称添加到数据库中的函数。
答案 0 :(得分:2)
我希望NameForm
是一个模型形式。在这种情况下,只有save()
将数据带入db。
if form.is_valid():
form.save()
return HttpResponseRedirect('/thanks/')
如果您的表单是普通表单,那么您需要获取传递的值并创建/赋值给/模型对象:
if form.is_valid():
# modifying
name_object = Name.objects.get(some_field=some_field)
name_object.name_field = form.cleaned_data['your_name']
name_object.save()
# or creating
new_name_object = Name(name_field=form.cleaned_data['your_name'])
new_name_object.save()
return HttpResponseRedirect('/thanks/')
答案 1 :(得分:0)
例如:
我自己的模特是这样的:class MyModel(models.Model):
var = models.CharField(max_length=10)
所以在我看来:
if form.is_valid():
var = form.cleaned_data['var']
# do insertion or modification or deletion
obj = MyModel.objects.create(var=var)
obj.save()
您最好看一下手册,详细说明。