u
ubomj27 жовтня 2020 р. 09:45

Создание черновика как на авито и тд

Всем привет!
Есть задача: при переходе на создание поста мб еще и заполнении чего то... создавать что то вроде черновика поста с id.
В джанго только новичок :(
Может кто сталкивался с такой задачей или хотя бы подскажите куда копать ?

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

8
Илья Чичак
  • 27 жовтня 2020 р. 10:09

почему-бы не создавать объект поста, но, чтобы в нем был флаг, например 'is_draft=True'?

после заполнения, во время сохранения, переключать is_draft в False

а выводить, куда нужно, все, у чего is_draft = False

    u
    • 27 жовтня 2020 р. 10:17

    по коду я тук тук)) если создание объекта поста без нажатия кнопок (создать черновик), то подходит, вернее оно и есть... но если надо нажимать кнопку - то не то

      Илья Чичак
      • 27 жовтня 2020 р. 10:27
      • Відповідь була позначена як рішення.

      почему?

        u
        • 27 жовтня 2020 р. 10:34
        • (відредаговано)

        Ну пользователь я думаю не настроен будет жмакать кнопку создать черновик, потом продолжать заполнять...
        А черновик в свою очередь нужен пока только для получения id, который нужен для мультизагружки изображений и привязки их к посту. как то так...

          Илья Чичак
          • 28 жовтня 2020 р. 04:48

          кнопка "добавить пост" -> создается черновик, открывается форма этого черновика
          пользователь заполняет, отмечает галку "опубликовать" -> пост переводится из черновика и сохраняется, что пользователь написал

            u
            • 28 жовтня 2020 р. 06:37
            • (відредаговано)

            Илья а можно пример кода?
            Пожалуйстааа ^___^

            class CreatePostView(LoginRequiredMixin, CreateView):
                model = Post
                form_class = PostForm
                template_name = 'add.html'
                success_url = None
            
                def get(self, request, *args, **kwargs):
                    self.object = None
                    form_class = self.get_form_class()
                    form = self.get_form(form_class)
            
                    #создание черновика при переходе на страницу добавления
                    if request.user.is_authenticated:
                        object = Post.objects.create(name='Название не указано', user=self.request.user)
                        object.save()
            
                    return self.render_to_response(self.get_context_data(form=form))
            
            
                def post(self, request, *args, **kwargs):
                    form = self.get_form()
                    if form.is_valid():
                        return self.form_valid(form)
                    else:
                        return self.form_invalid(form)
            

            При переходе на страницу добавления пост создается, но как открыть форму этого же поста?))

              Илья Чичак
              • 29 жовтня 2020 р. 05:34

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

              я бы вообще решал это так:

              class Post(models.Model):
                  author = models.ForeignKey(settings.USER_MODEL)
                  title = models.CharField...
                  tags = models.ListField...
                  created_at = models.DatetimeField...
                  updated_at = models.DatetimeField...
              
                  summary = models.TextField...
                  head_img = models.URLField...
              
              class PostChunk(models.Model):
                  post = models.ForeignKey('Post')
                  text = models.TextField...
                  image = models.ImageField...
                  ...
              

              и сам пост собирать из PostChunk

              тогда можно было бы сделать сложную структуру, типа

              текст
              картинка
              текст
              текст
              видео
              текст
              
                СЯ
                • 11 квітня 2021 р. 04:14

                А как все же активировать черновик?

                  Коментарі

                  Only authorized users can post comments.
                  Please, Log in or Sign up
                  AD

                  C++ - Тест 004. Указатели, Массивы и Циклы

                  • Результат:50бали,
                  • Рейтинг балів-4
                  m
                  • molni99
                  • 26 жовтня 2024 р. 11:37

                  C++ - Тест 004. Указатели, Массивы и Циклы

                  • Результат:80бали,
                  • Рейтинг балів4
                  m
                  • molni99
                  • 26 жовтня 2024 р. 11:29

                  C++ - Тест 004. Указатели, Массивы и Циклы

                  • Результат:20бали,
                  • Рейтинг балів-10
                  Останні коментарі
                  ИМ
                  Игорь Максимов22 листопада 2024 р. 22:51
                  Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                  Evgenii Legotckoi
                  Evgenii Legotckoi01 листопада 2024 р. 00:37
                  Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                  A
                  ALO1ZE19 жовтня 2024 р. 18:19
                  Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                  ИМ
                  Игорь Максимов05 жовтня 2024 р. 17:51
                  Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                  d
                  dblas505 липня 2024 р. 21:02
                  QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                  Тепер обговоріть на форумі
                  Evgenii Legotckoi
                  Evgenii Legotckoi25 червня 2024 р. 01:11
                  добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                  t
                  tonypeachey115 листопада 2024 р. 17:04
                  google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                  NSProject
                  NSProject04 червня 2022 р. 13:49
                  Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                  9
                  9Anonim25 жовтня 2024 р. 19:10
                  Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

                  Слідкуйте за нами в соціальних мережах