Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 互连外键_Python_Django - Fatal编程技术网

Python 互连外键

Python 互连外键,python,django,Python,Django,我有一个任务: 创建一个基本上包含“学生”和“组”的数据库模型 “学生”包含:“姓名”、“学生身份证”、“组”(必须是组的ForeigKey!) “组”包含:“组名”和“队长”(必须是学生的外键!) 现在我遇到了一次碰撞,这是不可能的。所以我是这样做的: class Group(models.Model): group_name = models.CharField(max_length=50) class Student(models.Model): name

我有一个任务:

  • 创建一个基本上包含“学生”和“组”的数据库模型
  • “学生”包含:“姓名”、“学生身份证”、“组”(必须是组的ForeigKey!
  • “组”包含:“组名”和“队长”(必须是学生的外键!
现在我遇到了一次碰撞,这是不可能的。所以我是这样做的:

class Group(models.Model):
    group_name = models.CharField(max_length=50)    


class Student(models.Model):
    name = models.CharField(max_length=50)
    birth_date = models.DateField()
    std_ID_card = models.IntegerField()
    group = models.ForeignKey(Group)


class Captain(models.Model):
    student = models.OneToOneField(Student)
    group = models.OneToOneField(Group)

我有更优雅、更正确的方法吗?

为什么原始结构不可能

class Group(models.Model):
    group_name = models.CharField(max_length=50)    
    captain = models.ForeignKey('Student')

class Student(models.Model):
    name = models.CharField(max_length=50)
    birth_date = models.DateField()
    std_ID_card = models.IntegerField()
    group = models.ForeignKey(Group)

为什么原来的结构是不可能的

class Group(models.Model):
    group_name = models.CharField(max_length=50)    
    captain = models.ForeignKey('Student')

class Student(models.Model):
    name = models.CharField(max_length=50)
    birth_date = models.DateField()
    std_ID_card = models.IntegerField()
    group = models.ForeignKey(Group)
尝试添加一个:

尝试添加一个:


字段“captain”的反向查询名称与字段“Student.group”冲突字段“captain”的反向查询名称与字段“Student.group”冲突