我在创建一些非常简单的东西时有点卡住了 - 一个新用户。
我脑海中的工作流程是这样的:用户使用 api 密钥发送查询。检查用户是否存在。如果没有,请创建用户。
这是我的 UserSignUpResource:
class UserSignUpResource(ModelResource):
class Meta:
object_class = User
queryset = User.objects.all()
allowed_methods = ['post']
include_resource_uri = False
resource_name = 'newuser'
excludes = ['is_active','is_staff','is_superuser']
authentication = ApiKeyAuthentication()
authorization = DjangoAuthorization()
models.signals.post_save.connect(create_api_key, sender=User)
def obj_create(self,bundle,request=None,**kwargs):
try:
bundle = super(UserSignUpResource, self).obj_create(bundle,request,**kwargs)
bundle.obj.set_password(bundle.data.get('password'))
bundle.obj.save()
except IntegrityError:
raise BadRequest('The username already exists')
return bundle
def apply_authorization_limits(self,request,object_list):
return object_list.filter(id=request.user.id,is_superuser=True)
我的 API 调用:
curl -v -X POST -d '{"username" : "puck", "password" : "123456"}' -H "Authorization: ApiKey puck:link" -H "Content-Type: application/json" http://127.0.0.1:8000/api/v1/newuser/
我收到 401 错误。那正是因为我不知道如何创建 API 密钥以便我可以使用它来创建新用户。
我可以在 django admin 中看到一个 api 列,但它只允许我为每个用户创建一个 api 密钥。因此,这是如何工作的?我如何使它工作?
关于教程的信息很少。几乎没有任何关于它的博客。你能帮忙的话,我会很高兴。我挣扎得很厉害。