u
27 октября 2020 г. 19:45

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

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

4

Вам это нравится? Поделитесь в социальных сетях!

8
Илья Чичак
  • 27 октября 2020 г. 20:09

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

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

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

    u
    • 27 октября 2020 г. 20:17

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

      Илья Чичак
      • 27 октября 2020 г. 20:27
      • Ответ был помечен как решение.

      почему?

        u
        • 27 октября 2020 г. 20:34
        • (ред.)

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

          Илья Чичак
          • 28 октября 2020 г. 14:48

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

            u
            • 28 октября 2020 г. 16:37
            • (ред.)

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

            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)

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

              Илья Чичак
              • 29 октября 2020 г. 15:34

              А черновик в свою очередь нужен пока только для получения 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. текст
                СЯ
                • 11 апреля 2021 г. 14:14

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

                  Комментарии

                  Только авторизованные пользователи могут публиковать комментарии.
                  Пожалуйста, авторизуйтесь или зарегистрируйтесь
                  • Последние комментарии
                  • IscanderChe
                    12 апреля 2025 г. 17:12
                    Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
                  • AK
                    1 апреля 2025 г. 11:41
                    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
                  • Evgenii Legotckoi
                    9 марта 2025 г. 21:02
                    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
                  • VP
                    9 марта 2025 г. 16:14
                    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
                  • ИМ
                    22 ноября 2024 г. 21:51
                    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…