Могу ли я назначить пользовательское имя для преобразователей пути в Django? - PullRequest
0 голосов
/ 16 февраля 2020

Я хочу назначить пользовательское имя для slug конвертера пути в urlpatterns из моего Теперь это выглядит так:

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

В этом представлении я использую DetailListView. Слаг содержит только символы ASCII, но в любом случае он меня не пускает. После некоторых манипуляций с переданным значением я возвращаюсь из get со строкой return super().get(request, *args, **kwargs).

Затем выдает ошибку:

AttributeError: Generi c подробный вид Категория должна вызываться либо с объектом pk, либо с фрагментом в URLconf.

Но если я изменю имя category в urlpatterns до slug ошибка исчезает.


Теперь вопрос: можно ли назначить произвольное имя для преобразователей пути в Django?

1 Ответ

1 голос
/ 16 февраля 2020

Вы можете определить пользовательское имя, используя атрибут slug_url_kwarg в вашем классе просмотра:

class Category(DetailView):
    slug_url_kwarg = "category"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...