Владислав Меленчук
Владислав МеленчукМамыр 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. Как создать полиморфную систему динамических виджетов

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

                    Пікірлер

                    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                    Кіріңіз немесе Тіркеліңіз
                    OI
                    • Ora Iro
                    • Жел. 24, 2024, 6:38 Т.Ж.

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

                    • Нәтиже:40ұпай,
                    • Бағалау ұпайлары-8
                    AD

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

                    • Нәтиже:50ұпай,
                    • Бағалау ұпайлары-4
                    m
                    • molni99
                    • Қаз. 26, 2024, 1:37 Т.Ж.

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

                    • Нәтиже:80ұпай,
                    • Бағалау ұпайлары4
                    Соңғы пікірлер
                    ИМ
                    Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
                    Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                    Evgenii Legotckoi
                    Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
                    Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                    A
                    ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
                    Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                    ИМ
                    Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
                    Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                    d
                    dblas5Шілде 5, 2024, 11:02 Т.Ж.
                    QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                    Енді форумда талқылаңыз
                    Evgenii Legotckoi
                    Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                    добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                    t
                    tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
                    google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                    NSProject
                    NSProjectМаусым 4, 2022, 3:49 Т.Ж.
                    Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                    9
                    9AnonimҚаз. 25, 2024, 9:10 Т.Ж.
                    Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

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