#django
#django
Вопрос:
Мой urlpatterns
выглядит так:
urlpatterns = [
...
path('article/<int:pk>/', views.ArticleDetailView.as_view(), name='article_detail'),
...
]
Я хочу получить это pk
в классе view:
class ArticleDetailView(generic.DetailView):
model = Article
def get_context_data(self, **kwargs):
pk = kwargs['pk']
Однако это вызывает ошибку ключа:
KeyError at /article/2/
'pk'
Ответ №1:
Вы можете войти pk
DetailView
из self.kwargs
. Так и должно быть
class ArticleDetailView(generic.DetailView):
model = Article
def get_context_data(self, **kwargs):
pk = self.kwargs['pk']
Ответ №2:
Вы получаете эту ошибку, потому что вы ищете значение в параметре kwargs в get_context_data
методе. Вместо этого вы должны искать в ArticleDetailView
kwargs следующим образом self.kwargs['pk']