基本上,我希望接受表单中的值,即客户表单,并将值保存在数据库中。我使用的是django 1.9和python 3.5.4。我可以看到我的html表单,但当我输入值和提交时,我显示上述错误,也当我转到管理页面并单击客户时,它再次显示上述错误。我是python n Django的新手。
这是views.py
from django.shortcuts import render
from .forms import CustomerForm
from .models import Customer
#from django.http return HttpResponse
def index(request):
if request.method == 'POST':
form = CustomerForm(request.POST)
if form.is_valid():
cid = request.POST.get('cid','')
name = request.POST.get('name','')
age = request.POST.get('age','')
dob = request.POST.get('dob','')
income = request.POST.get('income','')
address = request.POST.get('address','')
city = request.POST.get('city','')
pincode = request.POST.get('pincode','')
c_obj = Customer(cid=cid, name=name, age=age, dob=dob,
income=income, address=address, city=city, pincode=pincode)
c_obj.save()
return HttpResponseRedirect(reverse('customer/customer.html '))
else:
form = CustomerForm()
return render(request,'customer/customer.html',{"form":form})这是models.py
from django.db import models
from django.forms import ModelForm
class Customer(models.Model):
cid = models.IntegerField(primary_key=True)
name = models.CharField(max_length=140)
age = models.IntegerField()
dob = models.DateField()
income = models.IntegerField()
address = models.CharField(max_length=140)
city = models.CharField(max_length=140)
pincode = models.IntegerField()
def __str__(self):
return self.cid
#class CustomerForm(ModelForm):
#class Meta:
#model = Customer
#fields = ['cid','name','age','dob','income','address','city','pincode']这是forms.py
from django import forms
from .models import Customer
class CustomerForm(forms.Form):
cid = forms.IntegerField()
name = forms.CharField(max_length=140)
age = forms.IntegerField()
dob = forms.DateField()
income = forms.IntegerField()
address = forms.CharField(max_length=140)
city = forms.CharField(max_length=140)
pincode = forms.IntegerField()
def clean_cid(self):
cid = self.cleaned_data.get('cid')
return cid
def clean_name(self):
name = self.cleaned_data.get('name')
return name
def clean_age(self):
age = self.cleaned_data.get('age')
return age
def clean_dob(self):
dob = self.cleaned_data.get('dob')
return dob
def clean_income(self):
income = self.cleaned_data.get('income')
return income
def clean_address(self):
address = self.cleaned_data.get('address')
return address
def clean_city(self):
city = self.cleaned_data.get('city')
return city
def clean_pincode(self):
pincode = self.cleaned_data.get('pincode')
return pincode解决方案将不胜感激。
发布于 2016-03-31 20:02:51
您还必须将当前模块包含到设置文件中:
INSTALLED_APPS = (
'suit', # django-suit
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.humanize',
'simple_history',
'localflavor',
'displays',
'products',)products -它是我的自定义模块,带有模型等,在它被包含之后,可以像上面写的那样进行迁移。
https://stackoverflow.com/questions/36332586
复制相似问题