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

Django

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

2

Do you like it? Share on social networks!

9
Evgenii Legotckoi
  • May 9, 2020, 1:17 p.m.
  • (edited)

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

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

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

    Владислав Меленчук
    • May 9, 2020, 1:25 p.m.
    • (edited)

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

      Evgenii Legotckoi
      • May 9, 2020, 1:34 p.m.

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

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

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

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

        1. LIKE = 1
        2. DISLIKE = -1
        3.  
        4. VOTES = (
        5. (DISLIKE, 'Не нравится'),
        6. (LIKE, 'Нравится')
        7. )
        8.  
        9. vote = models.SmallIntegerField(verbose_name=_("Голос"), choices=VOTES)

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

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

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

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

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

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

                    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