Django 1.6模型表单,AttributeError

时间:2014-08-25 18:34:03

标签: python django forms attributeerror django-forms

Django 1.6。模型表格问题。电子商务。

你好,

我非常感谢我的帮助......看起来很简单(非常简单)"问题。 Noob到Django,只是试图获得一个客户申请我正在制作的一个非常基本的电子商务网站。在此阶段,该计划是为了让客户能够填写他们的姓名和地址详细信息以便他们交付。我在网上看过那么多文章,在这里,方法略有不同,其中没有一个是我想要的(看似简单:-))。我现在完全糊涂了......!

我的问题是: 1)这个错误意味着什么,我该如何绕过它? 2)我的代码是否正确显示模型表单? ......和奖金...... 3)是否有更好的(简单阅读)方式为网站制作名称和地址收集器?

我有一个模型,我认为最好的计划是生成模型表单。但是,我现在得到的错误(当天的第一百万个错误)是

AttributeError at /customers/

'list' object has no attribute 'resolve'

Request Method:     GET
Request URL:    http://127.0.0.1:8000/customers/
Django Version:     1.6.5
Exception Type:     AttributeError
Exception Value:    

'list' object has no attribute 'resolve'

Exception Location:     /home/david/.virtualenvs/winestore/local/lib/python2.7/site-packages/django/core/urlresolvers.py in resolve, line 339   

models.py:

from django.db import models
from django.forms import ModelForm
from django.utils.encoding import smart_unicode


    first_name = models.CharField(max_length=120)
    last_name = models.CharField(max_length=120)
    email = models.EmailField()
    address_1 = models.CharField(max_length=120)
    address_2 = models.CharField(max_length=120, null=True, blank=True)
    town = models.CharField(max_length=120)

    ~~~~~ Other Fields ~~~~~~

    def __unicode__(self):
        return smart_unicode(self.email)

class CustomerForm(ModelForm):
    class Meta:
        model = Customer
        fields = ['first_name', 'last_name', 'email', ~~~~other fields~~~~~]

urls.py(主要项目urls.py有url(r&#39; ^ customers /&#39;,include(&#39; customers.urls&#39;)),指向此处。)< / p>

from django.conf.urls import patterns, url
from customers.views import CustomerForm

urlpatterns = patterns('',
    url(r'^$', CustomerForm.as_view, name ='add_customer')),

views.py

from django.http import HttpResponse
from django.views.generic import View
from customers.models import Customer, CustomerForm

class CustomerForm(View):
    class Meta:
        model = Customer
        template_name ='add_customer.html'

        def get_success_url (self):
            return HttpResponse('success.html')

模板add_customer.html

<h1>Add Your details please</h1>
<form action="" method="POST">
    {% csrf_token %}
<ul>
    {{ form.as_ul }}
</ul>
<input id="save_customer" type="submit" value="Save" />

</form>
<a href="{% url "/" %}">Back home</a>

我有一个forms.py,但读取模型表单(?)是不必要的。

任何帮助非常感谢。

Edit_V_2:我要感谢Peter和Luis,他们分别在urls.py中注明了一个尾随的逗号,它应该是CustomerForm.as_view(),而不是CustomerForm.as_view。

现在页面已加载!但遗憾的是空白。所以,如此接近......!

编辑3:给出的服务器错误是405错误。根据这个(Django 1.5 giving error 405 for simple form),问题可能出现在urls.py地址中。

1 个答案:

答案 0 :(得分:1)

如果您的urls.py文件完全如图所示,则会出现拼写错误:

urlpatterns = patterns('',
    url(r'^$', CustomerForm.as_view, name ='add_customer')),

尾随逗号将变量从patterns对象转换为patterns对象的1长度元组,例如:

>>> foo = 1,
>>> type(foo)
<type 'tuple'>