Есть ли возможность связать 2 модели в Django?

Я пытаюсь создать веб-приложение для викторины, где пользователь заходит в приложение и у него есть 2 кнопки:

  • создайте викторину, и решите викторину.

Вы можете сделать это без необходимости регистрации. Я создал модели, одну для викторины и одну для вопроса, и я поместил первичный ключ UUID в викторину, чтобы я мог использовать этот уникальный идентификатор в качестве расширения моей ссылки, чтобы перейти к викторине, которая содержит вопросы.

Моя проблема заключается в следующем. После создания викторины я хочу напрямую перейти к файлу создания вопросов для созданной викторины. Потому что сейчас после создания викторины мне нужно отдельно перейти к созданию вопроса, затем сделать выпадающий список для выбора викторины, для которой предназначен вопрос.

https://i.stack.imgur.com/dr4iP.png

https://i.stack.imgur.com/K5tFt.png

https://i.stack.imgur.com/7GdcK.png

ИМХО линия мысли, которую вы изложили в своем комментарии, выглядит правильной.

В вашем QuizCreateView вы могли бы создать success_url динамически:

class QuizCreateView(CreateView):
    ...

    def get_success_url(self):
        return reverse_lazy('add-question', kwargs={'quiz_id': self.object.pk})

В вашем urls.py добавьте quiz_id к вашему url

urlpatterns = [
    path('', views.HomeTemplateView.as_view(), name='home'),
    path('add-question/<quiz_id>/', views.QuestionCreateView.as_view(), name="add-question"),
...
]

Теперь вы получили quiz_id в вашем QuestionCreateView и можете использовать его, переопределив метод form_valid:

class QuestionCreateView(CreateView):
   ...

    def form_valid(self, form):
        res = super().form_valid(form)
        self.object.quiz_id = self.kwargs['quiz_id']
        self.object.save()
        return res
Вернуться на верх