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')

смотрите эту документацию для получения более подробной информации

Вернуться на верх