相同资源的单独 POST 个访问 url
Separate POST access urls for same resource
我需要为用户创建和用户身份验证创建单独的 POST 方法
例如:http://localhost:8000/registerUser 需要电子邮件、用户名和密码来注册用户和另一个 url
例如:http://localhost:8000/authenticateUser whcih 使用电子邮件和密码对用户进行身份验证
我可以通过覆盖 "override_url" 或 "dispatch" 方法来实现吗?或者其他方式
我想,你要找的是prepend_url
函数,见here。你可以这样使用它:
class AuthenticateUser(Resource)
class Meta:
resource_name = "authenticateUser"
def prepend_urls(self):
#add the cancel url to the resource urls
return [
url(r"^(?P<resource_name>%s)/(?P<pk>\w[\w/-]*)/register%s$" %
(self._meta.resource_name, trailing_slash()),
self.wrap_view('register'), name="api_authenticate_register"),
]
def register(self, request, **kwargs):
# check request
self.method_check(request, allowed=['post'])
# handle your request here, register user
return self.create_response(request, <some method>)
有了这个,你可以这样称呼它:
http://localhost:8000/authenticateUser # to authenticate
http://localhost:8000/authenticateUser/register # to register
另一种选择是,仅创建两个资源(从另一个继承)并仅更改元 class
中的 resource_name
我需要为用户创建和用户身份验证创建单独的 POST 方法
例如:http://localhost:8000/registerUser 需要电子邮件、用户名和密码来注册用户和另一个 url
例如:http://localhost:8000/authenticateUser whcih 使用电子邮件和密码对用户进行身份验证
我可以通过覆盖 "override_url" 或 "dispatch" 方法来实现吗?或者其他方式
我想,你要找的是prepend_url
函数,见here。你可以这样使用它:
class AuthenticateUser(Resource)
class Meta:
resource_name = "authenticateUser"
def prepend_urls(self):
#add the cancel url to the resource urls
return [
url(r"^(?P<resource_name>%s)/(?P<pk>\w[\w/-]*)/register%s$" %
(self._meta.resource_name, trailing_slash()),
self.wrap_view('register'), name="api_authenticate_register"),
]
def register(self, request, **kwargs):
# check request
self.method_check(request, allowed=['post'])
# handle your request here, register user
return self.create_response(request, <some method>)
有了这个,你可以这样称呼它:
http://localhost:8000/authenticateUser # to authenticate
http://localhost:8000/authenticateUser/register # to register
另一种选择是,仅创建两个资源(从另一个继承)并仅更改元 class
中的resource_name