Django:创建条目后添加条目到联结表(post_save)

时间:2014-09-01 07:54:41

标签: django

我有这张桌子

 ----------------
 | 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())

1 个答案:

答案 0 :(得分:0)

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