Я считаю, что моя ситуация отличается от других вопросов, и я попробовал несколько других ответов безрезультатно.
У меня есть конфигурация с uuid pk. В моем списке конфигов можно добавить, отредактировать, удалить конфигурацию, если вы щелкнете по имени конфигурации, это не приведет вас к деталям самой конфигурации, а скорее к просмотру данных в других моделях, которые ссылаются на конфигурацию как внешний ключ (т. е. данные "в" этой конфигурации).
В этой конфигурации можно CRUD для каждой модели. Я только начал добавлять кнопки «Добавить», но получил исключение NoReverseMatch. Я думаю, что это как-то связано с моими URL-адресами, но я не могу с этим разобраться.
Я знаю, что мне нужно каким-то образом передать pk из конфигурации в следующее представление.
Кроме того, при создании записи для каждой модели ПК из конфига необходимо автоматически сохранить как внешний ключ нового элемента (в фоновом режиме).
URLS.PY
# My configuration list, and CRUD (this works)
path('configurations/', ConfigurationsListView.as_view(), name='configurations'),
path('configurations/create/', views.ConfigurationCreate.as_view(), name='configuration_create'),
path('configurations/<uuid:pk>/update/', views.ConfigurationUpdate.as_view(), name='configuration_update'),
path('configurations/<uuid:pk>/delete/', views.ConfigurationDelete.as_view(), name='configuration_delete'),
# My configuration detail view (actually a view of data with the config as a foreign key)
path('configurations/configuration/<config_id>', views.ConfigurationDetailView.as_view(), name='configuration_detail'),
# My CUD urls for one of the models within the config
path('configurations/configuration/<config_id>/integration/create/', views.IntegrationCreate.as_view(), name='integration_create'),
path('configurations/<uuid:pk>/integration/<id>/update/', views.IntegrationUpdate.as_view(), name='integration_update'),
path('configurations/integration/delete/', views.IntegrationDelete.as_view(), name='integration_delete'),
ПРОСМОТРЫ .PY
# My view for CUD of one of the models within the config
class IntegrationCreate(LoginRequiredMixin, CreateView):
model = IntegrationInstance
fields = ['api', 'name', 'type', 'is_active']
# success_url = reverse('configuration_detail', args='pk')
success_url = reverse_lazy('configuration_detail')
CONFIGURATION_DETAIL. HTML
# My "Add" link
<a href={% url 'integration_create' %}>Add Integration</a>