Python ';注册';对象没有属性';获取';
我想通过用户输入存储用户名,但出现以下错误:Python ';注册';对象没有属性';获取';,python,django,Python,Django,我想通过用户输入存储用户名,但出现以下错误: `AttributeError` at /sign/ `'signup' object has no attribute 'get'` 以下是我正在尝试运行的相关代码: models.py: views.py bookstore/url.py 当您将^sign/模式与注册视图匹配时,url.py文件中出现错误,但在视图中,您仅定义了视图签名 您所引用的错误是因为在您的符号视图中,您只处理POST请求,因此无法处理GET请求。您可以按以下方式进行更改
`AttributeError` at /sign/ `'signup' object has no attribute 'get'`
以下是我正在尝试运行的相关代码:
models.py:
views.py
bookstore/url.py
当您将
^sign/
模式与注册
视图匹配时,url.py
文件中出现错误,但在视图中,您仅定义了视图签名
您所引用的错误是因为在您的符号视图中,您只处理POST请求,因此无法处理GET请求。您可以按以下方式进行更改:
def标志(请求):
如有要求,请发送:
username=request.POST['username']
user=signup.objects.create(用户名=username)
返回呈现(请求,'bookstore/signup.html',{'username':username})
返回呈现(请求'bookstore/login.html')
其中,
bookstore/login.html
可以是一个简单的html表单,带有用户名字段,并提交到^sign/
不是解决方案,但是,您是否缺少模式()
调用中的最后一个参数?请提供完整的回溯?您第一次访问sign时的视图是否有代码(即,作为一个get)?我想你会去签名,输入你的用户名并点击submit,在这一点上它会调用post内容。是的,之前我在我的views.py中使用了get,但后来删除了它,你得到了一个答案:这段代码url(r'^sign/$,views.signup,name='signup'))
建议您在views.py中使用一个名为signup的函数。您的函数只被称为sign
,而不是signup
将模板中的输入字段更改为:
class signup(models.Model):
username = models.CharField(max_length = 50)
def __unicode__ (self):
return self.username
def sign(request):
username = request.POST['username']
user = signup.objects.create(username=username)
return render(request,'bookstore/signup.html',{'username': username})
from django.conf.urls import patterns, url
from bookstore import views
urlpatterns = patterns(' ',
url(r'^$',views.home, name = 'home'),
url(r'^sign/$', views.signup,name='signup'),
url(r'^bookshow/$',views.bookshow,name='bookshow'),
url(r'^bookshow/(?P<book_id>\d+)/$',views.bookdetails, name='bookdetails'),
)
<html>
<h2>WELCOME TO BOOKSTORE<h2>
<h3>LOGIN TO GET IN LIBRARAY<h3>
{% if errors %}
<ul>
{% for error in errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
<div>
<form action="/sign/" method = "POST">
{% csrf_token %}
<input type="text" username="username" placeholder="USERNAME"/><br />
<input type="submit" value = "signup"/>
</form>
</div>
</html>
AttributeError at /sign/
'signup' object has no attribute 'get'
Request Method: GET
Request URL:
Django Version: 1.6.2
Exception Type: AttributeError
Exception Value:
'signup' object has no attribute 'get'
Exception Location: /usr/local/lib/python2.7/dist- packages/django/middleware/clickjacking.py in process_response, line 30
Python Executable: /usr/bin/python
Python Version: 2.7.5
Python Path:
['/home/prakhar/pp/django/mysit',
'/usr/local/lib/python2.7/dist-packages/pylint-1.1.0-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/astroid-1.0.1-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/logilab_common-0.61.0-py2.7.egg',
'/usr/local/lib/python2.7/dist-packages/pep8-1.5.3-py2.7.egg',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/PILcompat',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-client',
'/usr/lib/python2.7/dist-packages/ubuntuone-control-panel',
'/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']