class Students(models.Model):
id = models.BigAutoField(primary_key=True)
admission_no = models.CharField(max_length=255)
roll_no = models.CharField(unique=True, max_length=50, blank=True, null=True)
academic_id = models.BigIntegerField()
course_parent_id = models.BigIntegerField()
course_id = models.BigIntegerField()
first_name = models.CharField(max_length=20)
middle_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
user_id = models.BigIntegerField()
date_of_birth = models.DateField(blank=True, null=True)
date_of_join = models.DateField(blank=True, null=True)
class Courses(models.Model):
id = models.BigAutoField(primary_key=True)
parent_id = models.IntegerField()
course_title = models.CharField(max_length=50)
slug = models.CharField(unique=True, max_length=50)
tenant_user = models.ForeignKey('Users', models.DO_NOTHING, default='')
course_code = models.CharField(max_length=20)
course_dueration = models.IntegerField()
grade_system = models.CharField(max_length=10)
is_having_semister = models.IntegerField()
is_having_elective_subjects = models.IntegerField()
description = models.TextField()
status = models.CharField(max_length=8)
created_at = models.DateTimeField(blank=True, null=True)
updated_at = models.DateTimeField(blank=True, null=True)
class Meta:
managed = True
db_table = 'courses'
def __unicode__(self):
return self.course_title
class StudentProfileSerializer(ModelSerializer):
class Meta:
model = Students
depth = 0
fields = '__all__'
前两个表/类包含课程和学生表,第三个包含序列化程序。任何人都可以帮助如何使用django中的连接进行查询。我需要从Courses表中获取course_title,从Students表中获取first_name。
答案 0 :(得分:1)
学生= Student.objects.filter(PK = ...)
引用您的必填字段:
student.last_name, student.course.course_title
此外,如果我理解你的模型,你可能会得到一些不一致...如果学生模型中course_parent_id中存储的值与Courses模型中parent_id中存储的值不同怎么办?也许第一个是多余的。
答案 1 :(得分:0)
要从相关对象查询字段,请使用双下划线。所以你可以做到
Student.objects.filter(**kwargs).values('first_name', 'last_name', 'course__course_name')