Есть ли возможность связать 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