2014-09-01 71 views
1

我有这个表Django的:创建条目(post_save)

---------------- 
| project  | 
---------------- 
| project_id | 
| project_name | 
---------------- 

------------------ 
| project_member | 
------------------ 
| project_id  | 
| user_id  | 
------------------ 

如何创建一个新的项目后添加project_member条目(使用登录用户的USER_ID的电流)后,添加条目结表条目?

我不能让它使用post_save工作。

如果不可能,有什么更好的方法?

这里是我的post_save代码:

class Project(models.Model): 
     name = models.CharField(max_length=50) 

class ProjectMember(models.Model): 
     project_id = models.ForeignKey('Project', db_column='project_id') 
     user_id = models.ForeignKey(get_user_model()) 

def project_post_save(sender, instance, **kwargs): 
     pm = ProjectMember(project_id = instance, user_id = sender) 

signals.post_save.connect(project_post_save, sender=get_user_model()) 
+0

你可以发布您为post_save尝试的代码吗?也许有一些你错过了,有人会注意到:) – AdelaN 2014-09-01 08:07:57

回答

0

您需要保存新的对象,或者使用管理者的create方法。在信号的内部或外部,仅使用其构造函数创建模型实例不会自动将其保存到数据库中。

+0

我真的做到了。但它没有奏效。然而,我试着用ProjectMember创建了一个新的Project(name ='test')实例,它没有调用pm.save()就得到保存。 – DigitalDouble 2014-09-01 08:20:13

+0

看起来你的信号是错误的模型。您当前的配置挂钩在* user * save上。 – 2014-09-01 08:30:46