Вопрос по комментариям и моделям

Django

Всем привет, хотел бы спросить. Есть у меня модель статей, просто категория, текст, название.
Привязанные комментарии по полю models.ForeignKey к статьям.
Я хочу сделать новую модель - файловая база, где будут храниться статьи с другими полями. К ним собственно новую модель комментариев писать? Или можно как-то расширить модель комментариев и привязать её не только к статьям, но и к файловым статьям?

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

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

9
Evgenii Legotckoi
  • 9 мая 2020 г. 3:17
  • (ред.)

Привет.
А в чём отличие файловой статьи от обычной статьи? Может лучше добавить в модель статьи поле тип, которое будет определять какой вид статьи.
И сделать модель специфических параметров файловой статьи, которая будет иметь OneToOne поле к статье.
При этом, если создаётся файловая статья, то создаётся и объект специфических параметров. А при рендеринге статьи можно проверять параметр типа, на основании которого решать, к какой таблице специфических параметров обращаться.

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

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

    Владислав Меленчук
    • 9 мая 2020 г. 3:25
    • (ред.)

    Ну в принципе ни в чем, просто к обычной статье добавляются следующие поля: ссылка 1, ссылка 2, размер 1, размер 2, источник, авторство, перевод, скриншоты и т.д. Например на DLE я просто не заполняю эти поля и категорию отношу либо к файлам либо к статьям.
    В общем, мне нужно сделать в моих статьях поле тип статья это или мод, и если это мод то подгружать ещё доп.поля из модели с OneToOne?
    Скрин ниже реализация на DLE:

      Evgenii Legotckoi
      • 9 мая 2020 г. 3:34

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

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

      То есть создание статьи будет производится в два этапа. Первый - это форма, которая имеет только SelectBox с выбором типа статьи. При сохранении типа статьи производится переадресация на следующую форму, где уже будут добавлены все остальные параметры, а также специфические параметры для типа статьи.

        Это как у тебя в системе лайк дизлайк?

        LIKE = 1
            DISLIKE = -1
        
            VOTES = (
                (DISLIKE, 'Не нравится'),
                (LIKE, 'Нравится')
            )
        
            vote = models.SmallIntegerField(verbose_name=_("Голос"), choices=VOTES)
        

          Если ты про SelectBox, то да, именно так

            Да, я про SelectBox, который укажет статья это или файл. Ну ладно, что нибудь попробую сделать. Получится ли))

              Я сейчас пишу статью о динамических виджетах, так что можешь подождать и потом прочитать как я реализовывал подобный функционал.

                Хорошо, я пока потренируюсь по полям OneToOne, чтоб не тормозить в процессе

                  Вот эта статья Django - Урок 054. Как создать полиморфную систему динамических виджетов

                  Уже и не помню, когда я писал что-то настолько основательное

                    Комментарии

                    Только авторизованные пользователи могут публиковать комментарии.
                    Пожалуйста, авторизуйтесь или зарегистрируйтесь
                    г
                    • ги
                    • 23 апреля 2024 г. 22:51

                    C++ - Тест 005. Структуры и Классы

                    • Результат:41баллов,
                    • Очки рейтинга-8
                    l
                    • laei
                    • 23 апреля 2024 г. 16:19

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

                    • Результат:10баллов,
                    • Очки рейтинга-10
                    l
                    • laei
                    • 23 апреля 2024 г. 16:17

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

                    • Результат:50баллов,
                    • Очки рейтинга-4
                    Последние комментарии
                    k
                    kmssr9 февраля 2024 г. 2:43
                    Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                    АК
                    Анатолий Кононенко5 февраля 2024 г. 9:50
                    Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                    EVA
                    EVA25 декабря 2023 г. 18:30
                    Boost - статическая линковка в CMake проекте под Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                    J
                    JonnyJo25 декабря 2023 г. 16:38
                    Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                    G
                    Gvozdik19 декабря 2023 г. 5:01
                    Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                    Сейчас обсуждают на форуме
                    G
                    Gar22 апреля 2024 г. 12:46
                    Clipboard Как скопировать окно целиком в clipb?
                    DA
                    Dr Gangil Academics20 апреля 2024 г. 14:45
                    Unlock Your Aesthetic Potential: Explore MSC in Facial Aesthetics and Cosmetology in India Embark on a transformative journey with an msc in facial aesthetics and cosmetology in india . Delve into the intricate world of beauty and rejuvenation, guided by expert faculty and …
                    a
                    a_vlasov14 апреля 2024 г. 13:41
                    Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                    Павел Дорофеев
                    Павел Дорофеев14 апреля 2024 г. 9:35
                    QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                    f
                    fastrex4 апреля 2024 г. 11:47
                    Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…

                    Следите за нами в социальных сетях