python – 在Django中保存表单数据
发布时间:2020-12-20 12:09:03 所属栏目:Python 来源:网络整理
导读:我正在尝试在Django中设置一个表单并将数据保存到我的数据库,而不使用ModelForm.我的表单正在运行,但我坚持的部分是如何处理表单数据并将其保存在视图中.正如你所看到的,在’if form.is_valid()之后:’我陷入了困境,无法想到正确的代码. # models.pyfrom dj
我正在尝试在Django中设置一个表单并将数据保存到我的数据库,而不使用ModelForm.我的表单正在运行,但我坚持的部分是如何处理表单数据并将其保存在视图中.正如你所看到的,在’if form.is_valid()之后:’我陷入了困境,无法想到正确的代码.
# models.py from django.db import models class Listing(models.Model): business_name = models.CharField(max_length=80) business_email = models.EmailField() business_website = models.CharField(max_length=80) business_phone = models.CharField(max_length=80) # forms.py from django import forms class NewBusinessForm(forms.Form): business_name = forms.CharField(label='Business Name',max_length=100) business_phone = forms.CharField(label='Phone Number',max_length=100) business_email = forms.EmailField(label='Email Address',max_length=100) business_website = forms.CharField(label='Web Site',max_length=100) # views.py from django.shortcuts import render from django.http import HttpResponseRedirect from .forms import NewBusinessForm def new_business(request): if request.method == 'POST': form = NewBusinessForm(request.POST) if form.is_valid(): # process form data return HttpResponseRedirect('/') else: form = NewBusinessForm() return render(request,'directory/new.html',{'form': form}) 解决方法
您需要创建对象并手动设置所有字段.这是一个例子.
def new_business(request): if request.method == 'POST': form = NewBusinessForm(request.POST) if form.is_valid(): # process form data obj = Listing() #gets new object obj.business_name = form.cleaned_data['business_name'] obj.business_email = form.cleaned_data['business_email'] obj.business_phone = form.cleaned_data['business_phone'] obj.business_website = form.cleaned_data['business_website'] #finally save the object in db obj.save() return HttpResponseRedirect('/') .... 请注意,如果字段值不遵循约束,则保存对象可能会失败.所以你需要照顾它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |