GET from API dvices by filter platform #2541

Closed
opened 2025-12-29 18:19:48 +01:00 by adam · 1 comment
Owner

Originally created by @VictorPavlushin on GitHub (Apr 23, 2019).

Environment

  • Python version: 3.6.6
  • NetBox version: 2.5.10

Steps to Reproduce

  1. Create platform 'Red Hat Enterprise Linux 7'
  2. Assign the platform "Red Hat Enterprise Linux 7" to any device.
  3. Through the API, select all devices by the platform filter "Red Hat Enterprise Linux 7"
    curl -X GET "http://netbox/api/dcim/devices/?platform=Red%20Hat%20Enterprise%20Linux%207" -H "accept: application/json" -H "X-CSRFToken: ....."

Expected Behavior

json with a list of devices

Observed Behavior

Received:

{
  "platform": [
    "Select a valid choice. %(value)s is not one of the available choices."
  ]
}

PS

Everything works if passed to platform slug
If this was the case, then the filter should be platform_slug and not just a platform

Originally created by @VictorPavlushin on GitHub (Apr 23, 2019). <!-- NOTE: This form is only for reproducible bugs. If you need assistance with NetBox installation, or if you have a general question, DO NOT open an issue. Instead, post to our mailing list: https://groups.google.com/forum/#!forum/netbox-discuss Please describe the environment in which you are running NetBox. Be sure that you are running an unmodified instance of the latest stable release before submitting a bug report. --> ### Environment * Python version: 3.6.6 * NetBox version: 2.5.10 <!-- Describe in detail the exact steps that someone else can take to reproduce this bug using the current stable release of NetBox (or the current beta release where applicable). Begin with the creation of any necessary database objects and call out every operation being performed explicitly. If reporting a bug in the REST API, be sure to reconstruct the raw HTTP request(s) being made: Don't rely on a wrapper like pynetbox. --> ### Steps to Reproduce 1. Create platform 'Red Hat Enterprise Linux 7' 2. Assign the platform "Red Hat Enterprise Linux 7" to any device. 3. Through the API, select all devices by the platform filter "Red Hat Enterprise Linux 7" curl -X GET "http://netbox/api/dcim/devices/?platform=Red%20Hat%20Enterprise%20Linux%207" -H "accept: application/json" -H "X-CSRFToken: ....." <!-- What did you expect to happen? --> ### Expected Behavior json with a list of devices <!-- What happened instead? --> ### Observed Behavior Received: ``` { "platform": [ "Select a valid choice. %(value)s is not one of the available choices." ] } ``` ### PS Everything works if passed to `platform` `slug` If this was the case, then the filter should be `platform_slug` and not just a `platform`
adam closed this issue 2025-12-29 18:19:48 +01:00
Author
Owner

@jeremystretch commented on GitHub (Apr 23, 2019):

The correct request would be GET /api/dcim/devices/?platform=<slug>. The available platforms and their slugs are listed at /api/dcim/platforms/. If you need further assistance please post to the mailing list.

@jeremystretch commented on GitHub (Apr 23, 2019): The correct request would be `GET /api/dcim/devices/?platform=<slug>`. The available platforms and their slugs are listed at `/api/dcim/platforms/`. If you need further assistance please post to the mailing list.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#2541