u
Oct. 27, 2020, 7:45 p.m.

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

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

4

Do you like it? Share on social networks!

8
Илья Чичак
  • Oct. 27, 2020, 8:09 p.m.

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

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

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

    u
    • Oct. 27, 2020, 8:17 p.m.

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

      Илья Чичак
      • Oct. 27, 2020, 8:27 p.m.
      • The answer was marked as a solution.

      почему?

        u
        • Oct. 27, 2020, 8:34 p.m.
        • (edited)

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

          Илья Чичак
          • Oct. 28, 2020, 2:48 p.m.

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

            u
            • Oct. 28, 2020, 4:37 p.m.
            • (edited)

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

            1. class CreatePostView(LoginRequiredMixin, CreateView):
            2. model = Post
            3. form_class = PostForm
            4. template_name = 'add.html'
            5. success_url = None
            6.  
            7. def get(self, request, *args, **kwargs):
            8. self.object = None
            9. form_class = self.get_form_class()
            10. form = self.get_form(form_class)
            11.  
            12. #создание черновика при переходе на страницу добавления
            13. if request.user.is_authenticated:
            14. object = Post.objects.create(name='Название не указано', user=self.request.user)
            15. object.save()
            16.  
            17. return self.render_to_response(self.get_context_data(form=form))
            18.  
            19.  
            20. def post(self, request, *args, **kwargs):
            21. form = self.get_form()
            22. if form.is_valid():
            23. return self.form_valid(form)
            24. else:
            25. return self.form_invalid(form)

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

              Илья Чичак
              • Oct. 29, 2020, 3:34 p.m.

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

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

              1. class Post(models.Model):
              2. author = models.ForeignKey(settings.USER_MODEL)
              3. title = models.CharField...
              4. tags = models.ListField...
              5. created_at = models.DatetimeField...
              6. updated_at = models.DatetimeField...
              7.  
              8. summary = models.TextField...
              9. head_img = models.URLField...
              10.  
              11. class PostChunk(models.Model):
              12. post = models.ForeignKey('Post')
              13. text = models.TextField...
              14. image = models.ImageField...
              15. ...

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

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

              1. текст
              2. картинка
              3. текст
              4. текст
              5. видео
              6. текст
                СЯ
                • April 11, 2021, 2:14 p.m.

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

                  Comments

                  Only authorized users can post comments.
                  Please, Log in or Sign up
                  • Last comments
                  • AK
                    April 1, 2025, 11:41 a.m.
                    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
                  • Evgenii Legotckoi
                    March 9, 2025, 9:02 p.m.
                    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
                  • VP
                    March 9, 2025, 4:14 p.m.
                    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
                  • ИМ
                    Nov. 22, 2024, 9:51 p.m.
                    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                  • Evgenii Legotckoi
                    Oct. 31, 2024, 11:37 p.m.
                    Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup