【发布时间】:2020-01-22 06:17:26
【问题描述】:
通过 django 表单将数据发布到数据库时,数据不会保存。
这是我的模型类:
class data(models.Model):
name = models.CharField(max_length=20)
age = models.IntegerField(max_length=5)
mobile = models.IntegerField(max_length=10)
email = models.EmailField(max_length=20)
password = models.CharField(max_length=20)
forms.py 文件:
class datamodel(forms.ModelForm):
class Meta:
model = data
fields = ('name', 'age', 'mobile', 'email', 'password')
view.py 文件:
def template_2_data(request):
form = datamodel()
if request.method == 'POST':
form = datamodel(request.POST)
if form.is_valid():
data = form.save(commit=False)
data.name = form.cleaned_data.get('name')
data.age = form.cleaned_data.get('age')
data.mobile = form.cleaned_data.get('mobile')
data.email = form.cleaned_data.get('email')
data.password = form.cleaned_data.get('password')
return HttpResponse('data saved...')
else:
form = form
return render(request, 'template_2.html', {'form': form})
模板:
<form action="/template_1/temp_1/" method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
【问题讨论】:
-
您没有保存
data实例,它不会自动保存,因为您有commit=False。在return HttpResponse()之前添加data.save()行。为什么要手动获取表单数据而不是让表单保存呢? -
我添加了 data.save() 但它不起作用。
标签: python django-models django-forms django-templates django-views