JRazor
@JRazor
Work for money

DRF: Можно ли убрать lookup_field во url?

Доброго времени суток!

Возникла проблема: я не хочу, чтобы в моих url'ах отображалось поле, указанное в lookup_field. Фактически, оно не делает ничего: доступ есть только к своему конкретному объекту, связанному с пользователем.

Собственно вопрос: можно ли убрать из url lookup_field используя routers?

Т.е. вместо p/a/t/h/1/ будет просто p/a/t/h/
  • Вопрос задан
  • 58 просмотров
Пригласить эксперта
Ответы на вопрос 2
@tumbler
бекенд-разработчик на python
Можно переопределить get_object так, чтобы не использовать lookup_field и не добавлять этот аргумент к урлам.
Ответ написан
Попробуйте в нужном вьюсете переопределить метод as_view
@classonlymethod
def as_view(cls, actions=None, **initkwargs):
    actions = {'get': 'retrieve', 'put': 'update', 'patch': 'partial_update'}
    return super().as_view(actions, **initkwargs)

Так же надо переопределить метод get_object (как-то так)
def get_object(self):
    return get_object_or_404(self.get_queryset(), user=self.request.user)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы