Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 名称错误位于/accounts/regist\u save/_Python_Django - Fatal编程技术网

Python 名称错误位于/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

我犯了个错误, 名称错误位于/accounts/regist\u save/ 未定义全局名称“令牌”。 我认为我的应用程序没有必要的东西,所以 我将
从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
唯一可能的修复方法是“定义该名称/导入具有该名称的对象”