【发布时间】:2014-08-26 03:15:35
【问题描述】:
Django 1.6。模型形式问题。电子商务。
你好,
对于我看似“非常简单(没错)”的问题,我真的很感激。 Noob to Django,只是想为我正在制作的一个非常基本的电子商务网站获取客户应用程序。在这个阶段,计划是让客户能够填写他们的姓名和地址详细信息以进行送货。我已经在网上和这里阅读了如此多的文章,方法略有不同,但都不是我想要的(看似简单的:-))。我现在完全糊涂了……!
我的问题是: 1)这个错误是什么意思,我该如何解决? 2)我的代码是否正确显示模型表单? ……还有奖金…… 3)有没有更好的(读起来简单)方法来为网站制作名称和地址收集器?
我有一个模型,我认为最好的计划是从中生成一个模型表单。但是,我现在得到的错误(一天中的第 100 万个错误)是
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'^customers/', include('customers.urls')), 指向这里)。
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 地址中。
【问题讨论】:
-
你可能有更长的回溯:你能包括其余的吗?
-
嗨,大卫。感谢那。 Peter(下)注意到 urls.py 文件中的尾随逗号,删除将 /customers/ 处的错误消息更改为 TypeError as_view() 正好需要 1 个参数(给定 2 个)。你还想要旧错误的回溯吗?!? (很高兴分享... :-))
-
不需要,听起来问题已经解决了。由于您的第一个问题(两个问题!)已经解决,因此接受答案可能是个好主意,然后尝试自己解决新的(第三个)问题。如果你不能,你可以开始一个新的问题。这是避免成为"chameleon question" 的好方法 :)
-
好的。会做。再次感谢。
标签: python django forms attributeerror django-forms