Я хочу использовать авторизацию Tastypie, чтобы предоставить пользователям доступ только к их объектам. Однако у меня возникают проблемы с пониманием, правильно ли я делаю это. Я последовал примеру здесь:Django Tastypie Пользовательские объекты Только авторизация
Когда я пытаюсь создать новый объект, я получаю 404 ошибку, потому что есть проблемы, оценивающие
def create_detail(self, object_list, bundle):
return bundle.obj.user == bundle.request.user
Все работает, если я комментирую это. Я думал, что комментирование этих двух строк позволит пользователю создавать объекты для других пользователей, но когда я попробовал это, я правильно получил ответ 401 (UNAUTHORIZED).
Означает ли это, что эти две линии не нужны? Как Tastypie может правильно определить, разрешено ли мне создавать объекты?
Когда я запускал это, я отправил запрос POST с «пользователем», равным соответствующему URI (что-то вроде «/ api/v1/user/1 /»). Я не уверен, что у Tastypie возникают проблемы с определением
bundle.obj.user
когда я делаю так.
Можно ли просто оставить эти две строки прокомментированными? Является ли Tastypie авторизацией пользователя одним из других методов?
'bundle.obj.user == bundle.request.user' вернет true, если вы меняете строку, принадлежащую вашему пользователю (авторизация на уровне строк). Это то, что вы пытаетесь сделать? –
Да. Это работает правильно, когда я выполняю запрос PUT. Однако он не работает во время запроса POST. POST работает только в том случае, если я удаляю эти две строки. – bwang88
Это звучит как ошибка. Я бы сообщил об этом как о проблеме на странице Github от Tastypie. –