Device_detail() missing 1 required positional argument: 'pk'
В настоящее время я застрял на ошибке: device_detail() missing 1 required positional argument: 'pk' Я не могу пройти мимо этой ошибки
Мои коды:
urls.py
path('device/<int:pk>/', DeviceDetailView.as_view(), name='device-detail'),
path('device/device_detail/', views.device_detail, name='device-detail'),
views.py
class DeviceDetailView(DetailView):
model = Device
template_name = 'interface/device_detail.html'
def device_detail(request, pk):
device = Device.objects.get(pk=pk)
return render(request, 'interface/device_detail.html',{'devices':device})
Возможно, вы запрашиваете второй url, значит: path('device/device_detail/', views.device_detail, name='device-detail'),
Проблема в том, что вы не объявили <int:pk>
в url пути, тогда в вашем представлении device_detail
не может получить то, что есть pk
:
path('device/device_detail/<int:pk>/', views.device_detail),
Затем вы можете отправить запрос на url, например: device/device_detail/1/
Ваше представление device_detail
ожидает аргумент pk
, но вы не передаете аргумент pk
через ваш url
. Просто передайте аргумент через url
, т.е. отредактируйте ваш url device_detail
как показано ниже:
path('device/device_detail/<int:pk>', views.device_detail, name='device-detail')
смотрите эту документацию для получения более подробной информации