相关疑难解决方法(0)

Django Rest - 创建自定义响应消息时出错

我想实现一个电子邮件验证,我的工作方式似乎"hacky",但似乎工作得很好.我在函数的返回部分创建了一个自定义响应,但是我一直收到以下错误:

The response content must be rendered before it can be iterated over.
Run Code Online (Sandbox Code Playgroud)

该过程是有人注册的标准,当我去保存用户模型时,我有一个send_mail()功能,用验证密钥发送电子邮件.用户单击该链接并传递密钥,如下所示:

/api/account/verify/849c40665175e56709855cc7aec2b16c05a4d977b3b083790334c6bc01f6e522
Run Code Online (Sandbox Code Playgroud)

在视图中,您可以看到我拉出密钥的位置并处理所有内容.我猜的错误是因为我使用Response()get_queryset(),但我不知道.如果没有,我该如何创建自定义响应消息?

版本

Python==2.7.10
Django==1.11.4
djangorestframework==3.6.3
Run Code Online (Sandbox Code Playgroud)

模型

class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(_('email address'), null=False, unique=True)
    first_name = models.TextField(_('first name'), null=False)
    last_name = models.TextField(_('last name'), null=False)
    is_active = models.BooleanField(_('active'), default=False)
    is_admin = models.BooleanField(_('admin'), default=False)
    created_on = models.DateTimeField(_('create on'), auto_now_add=True)
    updated_on = models.DateTimeField(_('updated on'), auto_now=True)
    is_staff = models.BooleanField(_('staff'), default=False)
    activation_key = models.CharField(_('email validation key'), default='', max_length=256)
Run Code Online (Sandbox Code Playgroud)

视图

class ActivateViewSet(generics.ListAPIView):

    queryset = …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

7
推荐指数
1
解决办法
4343
查看次数

标签 统计

django ×1

django-rest-framework ×1

python ×1