基本上我想接受表单中的值,即客户表单,并将值保存在数据库中。我使用的是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
解决方案将不胜感激。
答案 0 :(得分:-1)
您还必须将当前模块包含到设置文件中:
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',)
产品 - 它是我的自定义模块,包含模型等等。如上所述进行迁移。