Django两个外键

时间:2011-10-10 00:07:43

标签: django django-models django-views

我有两种模式: UserProfile (从用户扩展)和 Cv 。我创建了另一个带有两个来自这些模型的外键的模型。

class cv(models.Model):
    user = models.ForeignKey(User, unique=True)
    cv_d= models.TextField(max_length=1100)
    ...
class cvv(models.Model):
    user = models.ForeignKey(User)    
    cv= models.ForeignKey(cv)    
    date = models.DateTimeField(auto_now=True)

在我的视图中,我尝试在cvv上插入值:

...
obj = cv.objects.get(pk=id,active=True)
add=cvv(user=request.user, cv=obj)    
add.save()

但是,我收到以下错误: (1452,'无法添加或更新子行:外键约束失败

如何在我的模型上插入2个外键?

1 个答案:

答案 0 :(得分:2)

欢迎您使用MySQL的众多原因之一。当您有一个MyISAM表和一个InnoDB表时,最常发生这种情况。由于myISAM不支持FK约束,当django在表之间创建FK时,所有地狱都会松动。

修复是要么同时制作表InnoDB还是MyISAM,而不是混合它们。或者甚至更好地删除糟糕的RDMS而不是MySQL。