django-rest-framework教程4(认证与权限)问题

1 投票
1 回答
2395 浏览
提问于 2025-04-17 13:16

在顺利完成了前面1-3的教程后,我接着按照这个教程(http://django-rest-framework.org/tutorial/4-authentication-and-permissions.html)继续学习,完成了到“为我们的用户模型添加端点”这一部分。

也就是说,我添加了这两行代码:“url(r'^users/$', views.UserList.as_view()), url(r'^users/(?P[0-9]+)/$', views.UserInstance.as_view()),”。

然后,我用“python manage.py runserver”这个命令启动了服务器,并在浏览器中输入了 http://127.0.0.1:8000/users/,结果出现了以下错误信息:

(错误信息开始)

在 /users/ 处发生了 NameError 错误

提示:'User' 这个名字没有被定义

请求方式:GET

请求网址:http://127.0.0.1:8000/users/

Django 版本:1.4.3

异常类型:NameError

异常信息:'User' 这个名字没有被定义

异常位置:/home/user/tutorial/snippets/serializers.py 的 Meta 部分,第14行

(错误信息结束)

我是不是漏掉了什么?

我在 serializer.py 文件中的代码是:

from django.forms import widgets
from rest_framework import serializers
from snippets import models

class SnippetSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Snippet
        fields = ('id', 'title', 'code', 'linenos', 'language', 'style')

class UserSerializer(serializers.ModelSerializer):
    snippets = serializers.ManyPrimaryKeyRelatedField()

    class Meta:
        model = User
        fields = ('id', 'username', 'snippets')

1 个回答

2

你需要引入Django的用户类。

from django.contrib.auth.models import User

现在这个引入的代码没有提到。我想这应该是需要的。

撰写回答