django .urls.exceptions.NoReverseMatch в контексте второго уровня - PullRequest
0 голосов
/ 22 апреля 2020

Я считаю, что моя ситуация отличается от других вопросов, и я попробовал несколько других ответов безрезультатно.

У меня есть конфигурация с 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...