【问题标题】:django 1.7 how to add foreign key constraint on django session model?django 1.7 如何在 django 会话模型上添加外键约束?
【发布时间】:2018-05-16 15:07:05
【问题描述】:

在 Django 1.7 中,在 Django 会话中添加外键约束,

django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')

下面是我的模型定义

class UserSession(models.Model):
    user = models.ForeignKey(User,blank=True,null=True,default=None)
    session = models.ForeignKey('Session')

查看数据库后,django_session 表没有 id 列。我还尝试将db_column='session_key'(考虑到 session_key 是 django_session 表中的主键)参数添加到 ForeignKey() 函数。我仍然遇到同样的错误。

任何帮助将不胜感激。

【问题讨论】:

  • 这与您的数据库的整理有关。您需要确保数据库的排序规则与字段的排序规则相同。

标签: python django django-models


【解决方案1】:

试试

from django.contrib.sessions.models import Session
class UserSession(models.Model):
    user = models.ForeignKey(User,blank=True,null=True,default=None)
    session = models.ForeignKey(Session)

【讨论】:

  • 感谢您的回答。但它给出了相同的完整性错误。
【解决方案2】:

这解决了 to_field 属性指定要引用哪一列的问题。

class UserSession(models.Model):
        user = models.ForeignKey(User,blank=True,null=True,default=None)
        session = models.ForeignKey(Session,to_field='session_key',related_name='+')

【讨论】:

    猜你喜欢
    • 2018-11-05
    • 2019-02-15
    • 1970-01-01
    • 2017-04-20
    • 2021-01-26
    • 2019-01-01
    • 2019-01-08
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多