首页 文章

django:如何使用信号?

提问于
浏览
0

使用此模型创建用户帐户后

class User(auth.models.User,auth.models.PermissionsMixin):

def __str__(self):
    return "@{}".format(self.username)

表格

class UserCreateForm(UserCreationForm):class Meta:fields =(“first_name”,“last_name”,“username”,“email”,“password1”,“password2”)model = get_user_model()我想要一个默认条目来自另一个模型另一个应用程序在同一个项目中

class History(models.Model):

name = models.CharField(max_length = 50)
employee_ID = models.CharField(max_length = 20)
earned_leave = models.IntegerField(default = 10)
casual_leave = models.IntegerField(default = 10)
sick_leave = models.IntegerField(default = 10)
paid_leave =models.IntegerField(default = 10)

其中employee_ID是用户名,name是first_name .

我尝试过使用信号,但我不知道如何将值发送到db .

def send_data(sender,instance,created,** kwargs):print('data sent')

post_save.connect(receiver = send_data,sender = User)而不是这个print语句我应该写什么才能将代码发送到db中的History表中 . 我正在研究人类管理系统 .

1 回答

  • 0

    它太简单了 . 你可以在这里写下你的保存历史代码:

    def send_data(sender, instance, created, **kwargs):
        from your_app.models import History
        history = History()
        history.employee_ID = instance.username
        history.name = instance.first_name
        ....
        history.save()
    

相关问题