Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[bug] DeviceListFilterBackend drops additional query filters when config__templates is provided

Aperta Adatta ai principianti
#1,544 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
django, python
Ambito
api, backend

Direzione di ricerca

Leggi openwisp_controller/config/api/filters.py, concentrandoti su DeviceListFilterBackend.filter_queryset e su come delega a DeviceListFilter. Trova i test per l’endpoint dell’elenco dei dispositivi ed esegui i test dei filtri pertinenti. Il lavoro è completato quando una richiesta che combina config__templates con name restituisce solo i dispositivi che corrispondono a entrambi i filtri e i test coprono il comportamento esistente dei filtri.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

Describe the bug

When querying the device list endpoint (GET /api/v1/controller/device/) with config__templates, all other query filters (such as name, mac_address, group, etc.) are completely ignored.

In DeviceListFilterBackend.filter_queryset (openwisp_controller/config/api/filters.py), when config__templates is present in the request query parameters, the method returns early with return queryset.filter(config__templates=config_template_uuid_obj) without calling super().filter_queryset(). As a result, the remaining filters defined on DeviceListFilter are never evaluated.

Steps To Reproduce

  1. Create a configuration template T1.
  2. Create two devices, device-alpha and device-beta, both associated with template T1.
  3. Query the device list endpoint with both the template and a name filter:
    GET /api/v1/controller/device/?config__templates=<uuid_of_T1>&name=device-alpha
  4. Both device-alpha and device-beta are returned in the response, because the name filter was dropped.

Expected behavior

The API should apply both filters. The returned list should contain only devices associated with template T1 whose name contains device-alpha.

Screenshots

N/A

System Informatioon:

  • OS: Ubuntu 24.04
  • Python Version: Python 3.12
  • Django Version: Django 5.2
Lingua principale
Python
Stelle
792
Fork
335
Merge medio
9h 41m
PR unite (30g)
32

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di openwisp/openwisp-controller

Tutte le issue di openwisp/openwisp-controller

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.