我正在使用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个channelId和费率值设置为0插入3行。 支持用户注册并获得userIid 99,然后在表中插入3行作为
userId channelId rate
99 1 0
99 2 0
99 3 0
可能是什么解决方案。
答案 0 :(得分:1)
有2种可能的解决方案:
您可以使用信号。为您的AUTH_USER_MODEL创建一个post_save信号。通常用于在调用模型的save()方法之后执行一些逻辑。在该信号功能中,编写用于为所有通道和速率创建计数的逻辑。您可以从post_signal获取ATUTH_USER_MODEL的ID。
创建用于为您的AUTH_USER_MODEL注册用户的逻辑,并在创建用户后,为所有频道和费率创建计数。