У меня есть следующий пользовательский ресурс:
class UserResource(ModelResource):
class Meta:
queryset = User.objects.all()
resource_name = 'user'
fields = ['username', 'first_name', 'last_name']
allowed_methods = ['get']
filtering = {
'username': ALL,
'id': ALL,
}
и следующий ресурс модели:
class GoalResource(ModelResource):
user = fields.ForeignKey(UserResource, 'user')
class Meta:
#authentication = BasicAuthentication()
#authorization = ReadOnlyAuthorization()
queryset = Goal.objects.all()
resource_name = 'goal'
filtering = {
'user': ALL_WITH_RELATIONS,
}
Я хочу иметь возможность фильтровать цель по идентификатору пользователя, а не имени пользователя.
Я могу получить список целей по определенным именам пользователей, выполнив запрос GET по этому адресу:
http://localhost:8000/api/v1/goal/?user__username=test
Но вместо этого я хочу иметь возможность сортировки по идентификатору пользователя:
http://localhost:8000/api/v1/goal/?user__id=1
Как заставить работать вторую часть?
Кроме того, какова общая процедура доступа к идентификатору пользователя, вошедшего в систему в данный момент через Javascript?Я использую backbonejs, и я хочу сделать сообщение для всех целей вошедшего в систему пользователя.Я думал о размещении скрытого поля на странице с идентификатором пользователя.Затем извлекая значение скрытого поля из DOM, но я подумал, что легко использовать инструменты разработчика Chrome для изменения идентификатора, когда я захочу.Конечно, я буду использовать аутентификацию, чтобы проверить, совпадает ли идентификатор зарегистрированного пользователя с тем, который я извлекаю из скрытого поля.Но какой путь принят?