u
ubomj27 октября 2020 г. 9:45

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

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

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

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

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

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

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

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

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

почему?

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

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

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

u
  • 28 октября 2020 г. 6: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)

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

А черновик в свою очередь нужен пока только для получения 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

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

текст
картинка
текст
текст
видео
текст
СЯ

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

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Timeweb

Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.

В течение многих лет Timeweb доказывает свою стабильность.

Для проектов на Django рекомендую VDS хостинг

Посмотреть Хостинг
ВС

C++ - Тест 003. Условия и циклы

  • Результат:14баллов,
  • Очки рейтинга-10
ВС

C++ - Тест 003. Условия и циклы

  • Результат:14баллов,
  • Очки рейтинга-10
ИП

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

  • Результат:10баллов,
  • Очки рейтинга-10
Последние комментарии
A
  • Andrey
  • 28 апреля 2021 г. 1:25

Django - Урок 036. Как добавить аутентификацию через социальные сети. ВКонтакте

после того как дам разрешение для просмотра моего емайл, вот такая ошибка: AuthForbidden at /social-auth/complete/vk-oauth2/ Your credentials aren't allowed Вот сетингс: SOC…
DV

Qt/C++ - Урок 051. QMediaPlayer - Аудио плеер на Qt

Добрый вечер. Хотел бы получить консультацию по работе с проектом на Mac OS. Открыл проект в QT и собрал его. Проблема в том, что он не воспроизводит треки и их названия зацикленно мелькают в по…
SS

Как соответствовать новым требованиям Google Play

Добрый день. Спасибо вам огромное за вашу статью! только начинаю изучать QT под Андроид 4 дня потратил на то чтобы подобрать версию QT которая наконец то скомпилирует мне на windo…
YA

PyQt5 - Урок 009. Использование QThread с применением moveToThread

Hello. Let's say I want to send some variables to "run" define. How can we do that? I modified your code, I tried something like below, but the GUI is frozen that way. I could not be able to und…
R

Распознавание изображений на Python с помощью TensorFlow и Keras

почему то вместо 50000 обрабатывает по 782 картинки кажду. эпоху
Сейчас обсуждают на форуме
M

Qt/QML/Android(navigation button) - Стандартные клавиши навигации Андроид

Здравствуйте, пытаюсь заставить работать стандартную андроид-клавишу "назад", пытался разными способоами, они приведены в закомментированном коде. В том числе использовал https://evileg.com/ru/f…
M

Как включить OpenGL в Adnroid эмуляторе QtCreator

Здравствуйте, у меня работают виртуальные машины с Android, но только в дефолтной был включен OpenGL. Потом я удалил дефолтную, создал новые, а в них OpenGL отключен. Справа на втором скриншоте …

QScrollArea dynamically add QCheckBoxes

Всё правильно. Это просто спамер, который отправился в вечный бан.

qml зажатая кнопка мыши в одной MouseArea и сигналы мыши из другой MouseArea

добрый, вы не пробовали отслеживать область видимости мышки через: _mouseArea.containsMouse и когда мышка будет в другой зоне видимости обрабатывать ее состояния?
О нас
Услуги
© EVILEG 2015-2021
Рекомендует хостинг TIMEWEB