Владислав Меленчук
Владислав МеленчукМамыр 9, 2020, 2:54 Т.Ж.

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

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 с выбором типа статьи. При сохранении типа статьи производится переадресация на следующую форму, где уже будут добавлены все остальные параметры, а также специфические параметры для типа статьи.

        Владислав Меленчук
        • Мамыр 9, 2020, 3:37 Т.Ж.

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

        LIKE = 1
            DISLIKE = -1
        
            VOTES = (
                (DISLIKE, 'Не нравится'),
                (LIKE, 'Нравится')
            )
        
            vote = models.SmallIntegerField(verbose_name=_("Голос"), choices=VOTES)
        
          Evgenii Legotckoi
          • Мамыр 9, 2020, 3:39 Т.Ж.

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

            Владислав Меленчук
            • Мамыр 9, 2020, 3:46 Т.Ж.

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

              Evgenii Legotckoi
              • Мамыр 9, 2020, 3:48 Т.Ж.

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

                Владислав Меленчук
                • Мамыр 9, 2020, 3:51 Т.Ж.

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

                  Evgenii Legotckoi
                  • Мамыр 9, 2020, 6:10 Т.Ж.

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

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

                    Пікірлер

                    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                    Кіріңіз немесе Тіркеліңіз
                    Г

                    C++ - Тест 001. Первая программа и типы данных

                    • Нәтиже:66ұпай,
                    • Бағалау ұпайлары-1
                    t

                    C++ - Тест 001. Первая программа и типы данных

                    • Нәтиже:33ұпай,
                    • Бағалау ұпайлары-10
                    t

                    Qt - Тест 001. Сигналы и слоты

                    • Нәтиже:52ұпай,
                    • Бағалау ұпайлары-4
                    Соңғы пікірлер
                    G
                    GoattRockҚыр. 3, 2024, 1:50 Т.Қ.
                    Linux жүйесінде файлдарды қалай көшіруге болады Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
                    d
                    dblas5Шілде 5, 2024, 11:02 Т.Ж.
                    QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                    k
                    kmssrАқп. 8, 2024, 6:43 Т.Қ.
                    Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                    АК
                    Анатолий КононенкоАқп. 5, 2024, 1:50 Т.Ж.
                    Qt WinAPI - Сабақ 007. Qt ішінде ICMP Ping арқылы жұмыс істеу Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                    Енді форумда талқылаңыз
                    Evgenii Legotckoi
                    Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                    добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                    F
                    FynjyШілде 22, 2024, 4:15 Т.Ж.
                    при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
                    BlinCT
                    BlinCTМаусым 25, 2024, 1 Т.Ж.
                    Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
                    BlinCT
                    BlinCTМамыр 5, 2024, 5:46 Т.Ж.
                    Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
                    Evgenii Legotckoi
                    Evgenii LegotckoiМамыр 2, 2024, 2:07 Т.Қ.
                    Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

                    Бізді әлеуметтік желілерде бақылаңыз