我没有这样的表:customer_customer错误

时间:2016-03-31 11:48:19

标签: python django forms sqlite

基本上我想接受表单中的值,即客户表单,并将值保存在数据库中。我使用的是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

解决方案将不胜感激。

1 个答案:

答案 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',)

产品 - 它是我的自定义模块,包含模型等等。如上所述进行迁移。