Python ';添加新客户表格';对象没有属性';保存详细信息';django中的错误

Python ';添加新客户表格';对象没有属性';保存详细信息';django中的错误,python,django,Python,Django,我是django的新手。我大声喊了我的密码。有人能帮我吗?我找不出错误在哪里。提前谢谢 addnewcus.html <form id="addnewcus_form" method="POST" action=""> {% csrf_token %} <ul> <li id="li_1"> <label class="description" for="id_bname">Customer N

我是django的新手。我大声喊了我的密码。有人能帮我吗?我找不出错误在哪里。提前谢谢

addnewcus.html

<form id="addnewcus_form" method="POST" action=""> {% csrf_token %}
     <ul>
         <li id="li_1">
             <label class="description" for="id_bname">Customer Name </label>
             <div> {{ form.cname }} </div>
          </li>
          <li id="li_2">
              <label class="description" for="id_bauthor">Customer Address </label>
              <div> {{ form.caddress }} </div>
          </li>                 
      </ul>
</form>
url.py

from django.db import models

class cusdetails(models.Model):
   cid=models.IntegerField()
   cname=models.CharField(max_length=100)
   caddress=models.CharField(max_length=100)
   active=models.BooleanField(default=True)
urlpatterns = patterns('',url(r'^addnewcus/$', 'cusapp.views.addnewcus_view', name='url_addnewcus'),)
import random

def get_rand_no():
    return random.randint(1234567, 9999999)
class addnewcus_form(ModelForm):
   cname = forms.CharField(widget=forms.TextInput())
   caddress = forms.CharField(widget=forms.TextInput())

    class Meta:
        model = bookdetails
        exclude = ('cid','active')


    def save_cusdetails(self):
        cusdetail_data = self.cleaned_data
        randomnumber = get_rand_no()
        cusdetails_createobj = cusdetails.objects.create(cid=randomnumber, cname=cusdetail_data['cname'], caddress=cusdetail_data['caddress'],active=True)
        return cusdetails_createobj
def addnewcus_view(request, template_name="addnewcus.html"):
     if request.method=="POST":
          cusdetail_data=addnewcus_form(data=request.POST)
          if cusdetail_data.is_valid():
              addcusdetail_obj = cusdetail_data.save_cusdetails()
              return HttpResponseRedirect(reverse("url_index"))
          else:
              return render(request, template_name,{'form':cusdetail_data})
     elif request.method=="GET":
          cusdetail_data=addnewcus_form()
          return render(request, template_name,{'form':bookdetail_data})
forms.py

from django.db import models

class cusdetails(models.Model):
   cid=models.IntegerField()
   cname=models.CharField(max_length=100)
   caddress=models.CharField(max_length=100)
   active=models.BooleanField(default=True)
urlpatterns = patterns('',url(r'^addnewcus/$', 'cusapp.views.addnewcus_view', name='url_addnewcus'),)
import random

def get_rand_no():
    return random.randint(1234567, 9999999)
class addnewcus_form(ModelForm):
   cname = forms.CharField(widget=forms.TextInput())
   caddress = forms.CharField(widget=forms.TextInput())

    class Meta:
        model = bookdetails
        exclude = ('cid','active')


    def save_cusdetails(self):
        cusdetail_data = self.cleaned_data
        randomnumber = get_rand_no()
        cusdetails_createobj = cusdetails.objects.create(cid=randomnumber, cname=cusdetail_data['cname'], caddress=cusdetail_data['caddress'],active=True)
        return cusdetails_createobj
def addnewcus_view(request, template_name="addnewcus.html"):
     if request.method=="POST":
          cusdetail_data=addnewcus_form(data=request.POST)
          if cusdetail_data.is_valid():
              addcusdetail_obj = cusdetail_data.save_cusdetails()
              return HttpResponseRedirect(reverse("url_index"))
          else:
              return render(request, template_name,{'form':cusdetail_data})
     elif request.method=="GET":
          cusdetail_data=addnewcus_form()
          return render(request, template_name,{'form':bookdetail_data})
视图.py

from django.db import models

class cusdetails(models.Model):
   cid=models.IntegerField()
   cname=models.CharField(max_length=100)
   caddress=models.CharField(max_length=100)
   active=models.BooleanField(default=True)
urlpatterns = patterns('',url(r'^addnewcus/$', 'cusapp.views.addnewcus_view', name='url_addnewcus'),)
import random

def get_rand_no():
    return random.randint(1234567, 9999999)
class addnewcus_form(ModelForm):
   cname = forms.CharField(widget=forms.TextInput())
   caddress = forms.CharField(widget=forms.TextInput())

    class Meta:
        model = bookdetails
        exclude = ('cid','active')


    def save_cusdetails(self):
        cusdetail_data = self.cleaned_data
        randomnumber = get_rand_no()
        cusdetails_createobj = cusdetails.objects.create(cid=randomnumber, cname=cusdetail_data['cname'], caddress=cusdetail_data['caddress'],active=True)
        return cusdetails_createobj
def addnewcus_view(request, template_name="addnewcus.html"):
     if request.method=="POST":
          cusdetail_data=addnewcus_form(data=request.POST)
          if cusdetail_data.is_valid():
              addcusdetail_obj = cusdetail_data.save_cusdetails()
              return HttpResponseRedirect(reverse("url_index"))
          else:
              return render(request, template_name,{'form':cusdetail_data})
     elif request.method=="GET":
          cusdetail_data=addnewcus_form()
          return render(request, template_name,{'form':bookdetail_data})
当我点击url时,它显示以下错误。

'addnewcus\u form'对象在django中没有属性“save\u cusdetails”错误

表单中有错误。 python是对空格敏感的编程语言。 当你写作时:

class A(object):
    def foo():
        pass

def boo():
pass

那么boo()将不在类范围内。它将在模块范围内。

听起来像是您在类外声明了您的
save\u cusdetails
。检查您的缩进。这里只有缩进不正确。在我的代码中,我在类中编写了defonly@ijarlax:请修复您的代码片段,使其与真实代码完全相同,否则我们将无能为力。我编辑了上述代码&这是原始代码片段。感谢您的回复Zagorulkin Dmitry。这里只有我的缩进顺序不正确。对不起。在我的代码中,缩进是正确的。