mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Custom field choice filtering matches multiple choices #1248
Closed
opened 2025-12-29 16:30:35 +01:00 by adam
·
11 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
No Label
type: bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#1248
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jvanderaa on GitHub (Sep 19, 2017).
Originally assigned to: @jeremystretch on GitHub.
Issue type
[ ] Feature request
[x] Bug report
[ ] Documentation
Environment
DCIM Custom Field Search - Returning Wrong Info
I setup a custom field to maintain our support contract information for each of the devices. I originally had 3 choices setup. I then got a bigger list of contracts and am now up to 13. When I search for devices in a field that I state has one coverage, devices with "Needs Coverage" show up. I click into the device and it has the custom field setup properly. When checking the API, it also reports the proper field back. However when I search for devices of each field type, they are showing up in the wrong place.
####Steps to Reproduce:
@jeremystretch commented on GitHub (Sep 19, 2017):
Please upgrade to the most recent release of NetBox (v2.1.4) to see if that resolves your issue.
@jvanderaa commented on GitHub (Sep 19, 2017):
Sorry Jeremy, I am at 2.1.4. Something got in my mind that I was a little ways back.
(v2.1.4)
@jeremystretch commented on GitHub (Sep 22, 2017):
@vanderaaj Could you please extend the steps needed to recreate this? Be sure to outline the process of creating the custom field first.
@jvanderaa commented on GitHub (Sep 27, 2017):
Do my best.
Then I found about 10 more service contracts
4) Went back into the Django admin console and went to the custom field
5) Added the additional 10 service contracts to the field
6) Created script to change the service contract field based on a spreadsheet with the contract information on it
7) The fields that are showing up duplicate are "Not Covered" and "Product name that starts with N.."
@jeremystretch commented on GitHub (Oct 16, 2017):
@vanderaaj You'll need to provide specific values for every field in the reproduction. You'll also need to provide the exact script that you ran; otherwise, we have no idea what was modified.
@jvanderaa commented on GitHub (Oct 19, 2017):
@jeremystretch makes perfect sense to me about wanting the full data, is there a method to get those communicated that isn't all over a Github public page? With this being our contract information, probably best to not have those contract numbers showing up.
I'm almost thinking that it may have been something with adding in additional contracts after adding data. Or else, just an input error on my part. I'm all for getting the data if it will help the community in the future. But if it is just to try to fix one individual user issue, I'm good with deleting and recreating the custom field. I've automated the process of getting each device into that field, so that isn't much work.
@jeremystretch commented on GitHub (Oct 19, 2017):
@vanderaaj
All development activity is tracked publicly. You'll need to detail the steps needed to recreate the bug using sanitized or fabricated data. Starting up a separate instance of NetBox running a fresh installation is a good idea.
@jvanderaa commented on GitHub (Oct 19, 2017):
All good on the public dev. I thought a previous comment wanted the real live data. One more attempt...
a. Object: "dcim > device"
b. Type: "Selection"
c. Name: "support_contract"
d. Label: "Support Contract"
e. Description: "Support Contract Information"
f. Required: Unchecked
g. Is filterable: Checked
h. Default: Blank
i. Weight: "100"
Custom Field Choices Set
Value: "NationalCoverage"
Value: "44223355: 8x5xNBD"
Value: "44223355: 24x7x4"
Set approximately 12 devices to the 3rd value, then I found more contracts.
Followed the same process to get into the dcim custom field.
Then added the following options
Value: "202438275: 8x5xNBD"
Value: "202438705: 8x5xNBD"
Value: "202531453: 8x5xNBD"
Value: "84284102: EMER"
Value: "93583721: P2E"
Value: "94283751: EMER"
Value: "94678217: PEA"
Value: "Needs Coverage"
Then I had a CSV file with device, contract and used the API to assign a contract to the device.
Then some devices that have the NationalCoverage contract show up in a query for
devices in Needs Coverage. When going into the device, it shows properly. The
search page just displays incorrectly.
@jeremystretch commented on GitHub (Oct 20, 2017):
Please provide the query you're using to search.
@jvanderaa commented on GitHub (Oct 20, 2017):
Devices -> Devices, Scroll down the right hand search filter to Support Contract custom field drop down. Selecting NationalCoverage and then devices with Needs Coverage show up in the search.
@jeremystretch commented on GitHub (Oct 20, 2017):
I think I know what's happening. The PK for the "NationalCoverage" option is 1, and the PK for the "Needs Coverage" option is 11. The query is filtering on
?cf_support_contract=1, which is being evaluated as:This matches both serialized values 1 and 11. We need to modify the filter to only match on exact values for select fields.