@mrkovalchuk
Junior developer

Как вывести на одной странице редактирование N материалов?

Доброго времени суток.

Итак, что мы имеем: модель Post(models.Model)
class Post(models.Model):
    title = models.CharField(verbose_name='Заголовок', max_length=100, null=False, unique=True)
    content = models.TextField(verbose_name='Текст')
    min_age = models.IntegerField(verbose_name='Возрастной рейтинг', default=0)
    image = models.ImageField(verbose_name='Основное изображене', upload_to='news_image')
    site_source = models.URLField(verbose_name='Сайт источник', max_length=110)
    date_publish = models.DateTimeField('Дата публикации', null=True)
    category = models.ForeignKey(Category, verbose_name='Категория', on_delete=models.CASCADE, default=None)
    publish_status = models.BooleanField(verbose_name='Опубликован', default=False)
    tags = models.ManyToManyField(Tag)
    depend_posts = models.ManyToManyField('self')

    def __str__(self):
        return self.title


Что хочу сделать: хочу вывести в одном представлении N форм заполнения, где N = 1+len(depend_posts).

Желательно, с использованием CBV. Пока, в таком виде находится процесс:
class UpdatePostView(UpdateView):
    model = Post
    form_class = PostForm
    template_name = 'mainApp/post_edit_create.html'
    success_url = '/admin/news/'

    def get_context_data(self, **kwargs):
        context = super(UpdatePostView, self).get_context_data(**kwargs)
        context['form_vk'] = PostForm
        context['depend_posts'] = self.model.objects.get(id=self.kwargs['pk']).depend_posts.values_list()
        return context


Т.е. я получаю одну заполненную форму и три пустых, от которых не знаю чего и ждать.

Подскажите, пожалуйста, как реализовать задуманное?
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
@deliro
Посмотри, как это сделано в админских инлайнах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы