15794 Make "related objects" dynamic
Fixes: #15794
Instead of hardcoding relationships between models for the detail view, they are now dynamically generated.
Known limitations
-
If a related model doesn't have a
listview, rendering of the related objects pane will fail. This limitation was already present before, but related models listed were explicitly chosen to do so. For all views shipped with NetBox I've added a filter if needed (omitparameter). However, external plugins might trigger this unintentionally, when named view is not available, but the relationship has not been setup withrelated_name='+'parameter. Switching toverified_viewin the panel's template should resolve this, but might decrease performance slightly. -
If a model introduces several relations to another model, they will all be listed with the same model name but different URL query parameters. This is not the case for models included in NetBox. As before, plugin developers can still use an extra panel for this special purpose and extra context about the different types of relationships.