web-dev-qa-db-fra.com

Comment puis-je rendre une barre oblique de fin facultative sur un Django Rest Framework SimpleRouter

Les docs disent que vous pouvez définir trailing_slash=False mais comment pouvez-vous permettre aux deux points de terminaison de fonctionner, avec ou sans barre oblique de fin?

21
Ryan Allen

Vous pouvez remplacer le __init__ method de la classe SimpleRouter:

from rest_framework.routers import SimpleRouter


class OptionalSlashRouter(SimpleRouter):

    def __init__(self):
        self.trailing_slash = '/?'
        super(SimpleRouter, self).__init__()

Le ? le caractère rendra la barre oblique facultative pour tous les itinéraires disponibles.

19
Ryan Allen

Vous pouvez également remplacer ce paramètre en passant un trailing_slash argument du constructeur SimpleRouter comme suit:

from rest_framework import routers

router = routers.SimpleRouter(trailing_slash=False)
6
dill