Может ли CreateView показывать дополнительные строки для каждой строки в определенном FK?

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


Предыстория + объяснение

Я рефакторирую приложение для изучения языка, готовясь сделать его Open Source. Оно фокусируется на письме и композиции. Работает оно так: пользователь может создать Post, и текст этого поста будет автоматически разделен на отдельные предложения с помощью NLP, а затем каждое отдельное предложение будет добавлено в другую таблицу PostRow. В отдельном представлении пользователь платформы может вносить исправления в этот пост. Затем все отдельные исправления добавляются в таблицу CorrectedRows.

Когда пользователь посещает представление MakeCorrection для исправления сообщения, форма, по сути, делает следующее:

  1. Отфильтруйте все строки PostRow для рассматриваемого поста
  2. Для каждой отфильтрованной строки PostRow покажите форму CorrectedRow тоже

Другими словами, если текст поста состоит из 6 предложений, то представление MakeCorrection должно показать 6 CorrectedRows.

enter image description here

Таблицы

class PostRow(SoftDeleteModel, TimeStampedModel):
    ...
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    sentence = models.TextField()


class CorrectedRows(SoftDeleteModel, TimeStampedModel):
    ...
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    post_row = models.ForeignKey(PostRow, on_delete=models.CASCADE, default=None)
    correction = models.TextField()
    type = models.CharField(choices=CORRECTION_TYPE_CHOICES, max_length=3, blank=True)
    is_perfect_sentence = models.BooleanField(default=False)

class MakeCorrectionView(LoginRequiredMixin, CreateView, SuccessMessageMixin):
    model = CorrectedRows
    success_message = _("Corrections successfully published")

    # do something here to show multiple CorrectedRows depending on the number of PostRows

Спасибо за помощь в продвинутых вопросах! Как это будет называться в правильной терминологии? Я бы с удовольствием почитал об этом побольше!

Вернуться на верх