Как вставить значение по умолчанию в таблицу базы данных при создании учетной записи пользователя в Django? - PullRequest
1 голос
/ 25 мая 2019

Я использую базу данных postgre, в моей базе данных есть 10 каналов.Это мои модели с channelId и userId в качестве внешнего ключа:

class Count(models.Model):
    userId = models.ForeignKey(User, on_delete=models.CASCADE)
    channelId = models.ForeignKey(News_Channel, on_delete=models.CASCADE)
    rate = models.PositiveIntegerField(default=0)

    def __str__(self):
        return self.channelId.name

    class Meta:
        ordering = ["-id"]

Я хочу, чтобы при создании учетной записи пользователя в таблицу вставлялись 3 строки для всех 3 channelId и значение скорости, равное 0. Предположим, что пользовательзарегистрируйтесь и получите userIid 99, а затем 3 строки, вставленные в таблицу как

userId channelId rate
99         1      0
99         2      0
99         3      0

Что может быть возможным решением.

1 Ответ

1 голос
/ 25 мая 2019

Существует 2 возможных решения:

  1. Вы можете использовать сигналы.Создайте сигнал post_save для вашего AUTH_USER_MODEL.Обычно он используется для выполнения некоторой логики сразу после вызова метода save () модели.В этой функции сигнала написать логику для создания счета для всех каналов и скорости.Вы можете получить идентификатор для ATUTH_USER_MODEL из post_signal.

    См. https://docs.djangoproject.com/en/2.2/topics/signals/

  2. Создать логику для регистрации пользователя для вашего AUTH_USER_MODEL и после создания пользователя создать счетчик для всех каналов и скорости.

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