1

所以我有一个金字塔遍历应用程序,我希望能够 PUT 到不存在的 URI。有没有办法在视图配置中做到这一点?

所以例如我有这个

@view_defaults(context=models.Groups, renderer='json')
@view_config(request_method='GET')
class GroupsView(object):

    def __call__(self):
        ''' This URI corresponds to GET /groups '''
        pass

    @view_config(request_method='PUT')
    def put(self):
        ''' This URI should correspond to PUT /groups/doesnotexist '''
        pass

当然,put 不起作用。上下文会在 上引发 keyerror doesnotexist,但在这种情况下如何让遍历器匹配视图?

4

1 回答 1

1

Group对于具有Group上下文和上下文的对象,这听起来像是一个单独的类UndefinedGroup。大多数视图都适用于Group,但您可以有一个特殊的方法来响应对UndefinedGroup对象的 PUT 请求。注意不UndefinedGroup应该子类化Group

@view_defaults(context=Group, renderer='json')
class GroupView(object):
    def __init__(self, request):
        self.request = request

    @view_config(request_method='GET')
    def get(self):
        # return information about the group

    @view_config(context=UndefinedGroup, request_method='PUT')
    def put_new(self):
        # create a Group from the UndefinedGroup

    @view_config(request_method='PUT')
    def put_overwrite(self):
        # overwrite the old group with a new one

然后,如果您的遍历树UndefinedGroup找不到Group.

于 2013-02-07T05:13:59.953 回答