【问题标题】:Django Two foreign keyDjango 两个外键
【发布时间】:2011-12-04 04:19:37
【问题描述】:

我有两个模型: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 外键?

【问题讨论】:

  • Request.user 拥有当前登录的用户

标签: django django-models django-views


【解决方案1】:

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

解决方法是创建两个表 InnoDB 或 MyISAM,而不是混合它们。或者甚至更好地为 MySQL 以外的东西丢弃坏的 RDMS。

【讨论】:

  • 我不会成为任何特定 RDMS 的粉丝。我个人使用并喜欢 Postgres,但它们有很多好的 RDMS。基本上“不是 MySQL”是一个很好的起点 =)
猜你喜欢
  • 1970-01-01
  • 2019-07-30
  • 2015-12-21
  • 2014-03-20
  • 1970-01-01
  • 2019-08-17
  • 2021-11-30
  • 2015-12-14
  • 2018-09-01
相关资源
最近更新 更多