Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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
查询具有外键关系的django模型_Django_Database_Postgresql_Django Models - Fatal编程技术网

查询具有外键关系的django模型

查询具有外键关系的django模型,django,database,postgresql,django-models,Django,Database,Postgresql,Django Models,在my models.py中,我有一个“课程”模型。一门课程可以有一个名称和一个描述,但有多个链接和讲师。我尝试使用外键关系建立此关系。现在,假设我想访问一个特定课程的名称,我可以通过c.name来访问,其中c是通过使用过滤器查询获得的对象。但是,我该如何接触该课程的第二位讲师呢?另外,我将如何为该课程添加新的讲师 class courses(models.Model): name=models.CharField(max_length=200) description=mode

在my models.py中,我有一个“课程”模型。一门课程可以有一个名称和一个描述,但有多个链接和讲师。我尝试使用外键关系建立此关系。现在,假设我想访问一个特定课程的名称,我可以通过c.name来访问,其中c是通过使用过滤器查询获得的对象。但是,我该如何接触该课程的第二位讲师呢?另外,我将如何为该课程添加新的讲师

class courses(models.Model):
    name=models.CharField(max_length=200)
    description=models.TextField() 

class links(models.Model):
    link=models.CharField(max_length=200)
    course=models.ForeignKey(courses,on_delete=models.CASCADE)

class instructors(models.Model):
    inst=models.CharField(max_length=200)
    course=models.ForeignKey(courses,on_delete=models.CASCADE)
  • 添加新讲师需要
    课程
    对象。因此,您可以执行以下操作:

    course = courses.objects.create(name="OS", description="course desc")
    instructor = instructors.objects.create(inst="name", course=course)
    
  • 您如何定义讲师的顺序?如果是创建
    讲师
    对象。然后,您可以访问课程的第二位讲师,如下所示

    all_instructors = instructors.objects.filter(course=course)
    if len(all_instructors) > 1:
        second_instructor = all_instructors[1]
    
    注意:您应该将模型重命名为单数名词,即
    课程
    链接
    讲师