Python 名称错误位于/accounts/regist\u save/
我犯了个错误, 名称错误位于/accounts/regist\u save/ 未定义全局名称“令牌”。 我认为我的应用程序没有必要的东西,所以 我将Python 名称错误位于/accounts/regist\u save/,python,django,Python,Django,我犯了个错误, 名称错误位于/accounts/regist\u save/ 未定义全局名称“令牌”。 我认为我的应用程序没有必要的东西,所以 我将从rest\u framework.authtoken.models导入Token到models.py,并将rest\u framework.authtoken添加到settings.py。 但是在那个时候,我的控制台有很多错误,所以我删除了它们。 那么,我应该怎么做来修复这个错误呢 我在views.py中写道 @login_required def
从rest\u framework.authtoken.models导入Token
到models.py,并将rest\u framework.authtoken
添加到settings.py。
但是在那个时候,我的控制台有很多错误,所以我删除了它们。
那么,我应该怎么做来修复这个错误呢
我在views.py中写道
@login_required
def profile(request):
context = {
'user': request.user,
}
return render(request, 'registration/accounts/profile.html', context)
def regist(request):
form = RegisterForm(request.POST or None)
context = {
'form': form,
}
return render(request, 'registration/accounts/regist.html', context)
@require_POST
def regist_save(request):
form = RegisterForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('registration/accounts/profile.html', context)
context = {
'form': form,
}
return render(request, 'registration/accounts/regist.html', context)
在models.py中
from django.db import models
from django.dispatch import receiver
from django.db.models.signals import post_save
from django.conf import settings
# from rest_framework.authtoken.models import Token
# Create your models here.
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
在URL.py中
from django.conf.urls import url
from . import views
from django.contrib.auth.views import login, logout
urlpatterns = [
url(r'^login/$', login,
{'template_name': 'registration/accounts/login.html'},
name='login'),
url(r'^logout/$', logout, name='logout'),
url(r'^regist/$', views.regist,name='regist' ),
url(r'^regist_save/$', views.regist_save, name='regist_save'),
]
在控制台中,它显示
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/exception.py", line 39, in inner
response = get_response(request)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/views/decorators/http.py", line 40, in inner
return func(request, *args, **kwargs)
File "/Users/Desktop/XXX/accounts/views.py", line 74, in regist_save
user = form.save()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/forms.py", line 116, in save
user.save()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/contrib/auth/base_user.py", line 80, in save
super(AbstractBaseUser, self).save(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/base.py", line 796, in save
force_update=force_update, update_fields=update_fields)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/base.py", line 833, in save_base
update_fields=update_fields, raw=raw, using=using)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 191, in send
response = receiver(signal=self, sender=sender, **named)
File "/Users/Desktop/XXX/UserToken/models.py", line 12, in create_auth_token
Token.objects.create(user=instance)
NameError: global name 'Token' is not defined
[31/Jan/2017 02:51:19] "POST /accounts/regist_save/ HTTP/1.1" 500 95382
使用rest_framework.authtoken.models导入令牌中的
时会出现哪些错误?这就是您可能需要帮助的错误,因为NameError只是“没有使用该名称定义任何内容”@tadhgmdonald Jensen thx,我添加了我的编辑。我询问了您在导入令牌时遇到的错误NameError
唯一可能的修复方法是“定义该名称/导入具有该名称的对象”