Вот моя модель:PATCH обновляет данные модели, но реагирует с 401 Несанкционированными ошибками
class EmployeeGroup(models.Model):
name = models.CharField(max_length=100)
members = models.ManyToManyField(EmployeeProfile,
related_name='employee_groups',
through='GroupMembership')
parent_group = models.ForeignKey('self',
related_name='children',
blank=True, null=True)
Вот мой ModelResource:
class EmployeeGroupResource(ModelResource):
parent_group = fields.ForeignKey('self', 'parent_group', null=True)
members = fields.ToManyField(GroupMembershipResource,
attribute = lambda bundle: bundle.obj.members.through.objects.filter(group=bundle.obj) or bundle.obj.members, full=True)
class Meta:
queryset = EmployeeGroup.objects.all()
resource_name = 'employee-groups'
authentication = Authentication()
authorization = Authorization()
filtering = {
'members': ALL_WITH_RELATIONS
}
Вы можете видеть, что нет никаких проверок делаются для авторизацию или аутентификацию пользователя в это время, поэтому почему, когда я отправляю запрос PATCH, все проходит нормально, но отвечает неавторизованной ошибкой?
curl --dump-header - -H "Content-Type: application/json"
-X PATCH --data '{"name": "human resources"}'
http://localhost:8000/api/v1/employee-groups/12/
HTTP/1.0 401 Unauthorized
Date: Sun, 22 May 2016 19:28:31 GMT
Server: WSGIServer/0.2 CPython/3.5.1
X-Frame-Options: SAMEORIGIN
Content-Type: text/html; charset=utf-8
Я делаю что-то неправильно здесь? Я не вижу, что делает сервер, чтобы сказать, что пользователь несанкционирован, но эй хо.
Edit: Сильвио дал мне толчок для работы его, соответствующий GroupMembershipResource ресурса не был создан с той же авторизацией, поэтому он был недобросовестным только для чтения. Поэтому я мог бы изменить имя, но потом не видел его, поскольку другой ресурс меня останавливал.
У вас есть любая другая авторизация в ресурсе GroupMembershipResource? – silviomoreto
Вот и все !, GroupMembershipResource еще не получил авторизацию, поэтому он по умолчанию не читал. –
Я добавлю это к ответу, чтобы сделать решение явным для других, когда вы помечаете его как решенный – silviomoreto