Как соотнести отдельные модели в Django 3 - PullRequest
0 голосов
/ 18 апреля 2020

Во время блокировки Covid-19 я работал над преобразованием старого внутреннего приложения Flask в приложение Django (просто для развлечения и чтобы лучше узнать Django).

Каждый час наша Active Directory и телефонная система доставляют CSV-файл с информацией о пользователе AD и списком ключевых слов из телефонной системы.

Я написал небольшое расширение manger.py, которое я могу вызвать с помощью cronjob. Это расширение очищает таблицу модели ADbruger и повторно заполняет модель через Pandas DataFrame, который я сохраняю через bulk_create.

Вопрос, который у меня возникает, - как сохранить контент в связанных моделях? Я импортирую данные базовой модели, как описано выше, с Pandas и bulk_create. Затем я хочу иметь дополнительную модель или унаследованную модель, которая дает модели возможность расширяться за счет собственных ключевых слов пользователей.

Есть ли способ отсоединить дочернюю модель и подключить ее позже, или есть способ для меня иметь две параллельные модели, которые не являются унаследованными моделями, а ведут себя как они?

В своем выводе (шаблонах) я хочу, чтобы пользователи могли показывать собственные ключевые слова, а не только один я получаю в исходном CSV-выводе.

Вот "основная" модель

class ADbruger(models.Model):
    initials = models.CharField(max_length=128, unique=True)
    name = models.CharField(max_length=128)
    title = models.CharField(max_length=128)
    keywords = models.CharField(max_length=409)  # the data in the CSV is a csv list within a list

    def __str__(self):
        return initials

Вот связанная, но не ссылочная модель. Сохраненные данные должны сохраняться, даже если модель ADbruger очищена

class UsersOwnKeywords(models.Model):
    initials = models.CharField(max_length=128)
    keyword = models.CharField(max_length=256)

    def __str__(self):
        return self.initials

1 Ответ

0 голосов
/ 03 мая 2020

Я обошел проблему, реализовав логическое поле для активного / неактивного. Неактивные записи будут удалены через определенный промежуток времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...