Je souhaite attribuer un nom personnalisé au convertisseur de chemin slug dans urlpatterns de mon Maintenant, ça ressemble à ça :

urlpatterns = [
    ...
    path(
        route="<slug:category>/",
        view=views.Category.as_view(),
        name="shop_category"
    ),
    ...
]

Dans cette vue, j'utilise DetailListView. Le slug ne contient que des caractères ASCII, mais de toute façon il ne me laisse pas entrer. Après quelques manipulations avec la valeur passée, je reviens de get avec la ligne return super().get(request, *args, **kwargs).

Ensuite, il me renvoie une erreur:

AttributeError : La catégorie de vue détaillée générique doit être appelée avec un objet pk ou un slug dans l'URLconf.

Mais si je change le nom de category dans urlpatterns en slug, l'erreur disparaît.


0
PythonNewbie 16 févr. 2020 à 21:14

1 réponse

Meilleure réponse

Vous pouvez définir un nom personnalisé à l'aide de slug_url_kwarg dans votre classe de vue :

class Category(DetailView):
    slug_url_kwarg = "category"
2
neverwalkaloner 16 févr. 2020 à 18:17