1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Inspect many-to-many fields

This commit is contained in:
Jeremy Stretch
2024-03-06 15:09:48 -05:00
parent 5cb7af88d4
commit 0a0dae3d35

View File

@ -80,6 +80,10 @@ class BaseFilterSetTests:
if model_field.name in chain(self.ignore_fields, IGNORE_FIELDS):
continue
# Skip reverse ForeignKey relationships
if type(model_field) is ManyToOneRel:
continue
# One-to-one & one-to-many relationships
if issubclass(model_field.__class__, ForeignKey) or type(model_field) is OneToOneRel:
if model_field.related_model is ContentType:
@ -90,10 +94,14 @@ class BaseFilterSetTests:
filter_name = model_field.name
else:
filter_name = f'{model_field.name}_id'
self.assertIn(filter_name, filterset_fields, f'No filter found for {model_field.name}!')
self.assertIn(filter_name, filterset_fields, f'No filter found for {filter_name}!')
# TODO: Many-to-one & many-to-many relationships
elif type(model_field) in (ManyToOneRel, ManyToManyField, ManyToManyRel):
# TODO: Many-to-many relationships
elif type(model_field) is ManyToManyField:
related_model = model_field.related_model._meta.model_name
filter_name = f'{related_model}_id'
self.assertIn(filter_name, filterset_fields, f'M2M: No filter found for {filter_name}!')
elif type(model_field) is ManyToManyRel:
continue
# TODO: Generic relationships