2014-09-01 70 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