Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 试图通过使用DJANGO ORM应用连接select_相关查询来检索具有特定id值的数据_Python_Mysql_Django_Django Orm - Fatal编程技术网

Python 试图通过使用DJANGO ORM应用连接select_相关查询来检索具有特定id值的数据

Python 试图通过使用DJANGO ORM应用连接select_相关查询来检索具有特定id值的数据,python,mysql,django,django-orm,Python,Mysql,Django,Django Orm,我想检索特定子主题id的问题及其选项和答案。(例如,我想检索所有问题及其选择,回答子主题id为2的问题),但当我应用查询时,它会向我提供DB中存在的所有子主题问题和答案 这是我的模特 from django.db import models from django.db.models import Model # Create your models here. class Teacher_Signup(models.Model): username = models.CharFie

我想检索特定子主题id的问题及其选项和答案。(例如,我想检索所有问题及其选择,回答子主题id为2的问题),但当我应用查询时,它会向我提供DB中存在的所有子主题问题和答案

这是我的模特

from django.db import models
from django.db.models import Model


# Create your models here.
class Teacher_Signup(models.Model):
    username = models.CharField(max_length=122)
    email = models.EmailField(max_length=40)
    password1 = models.CharField(max_length=20)
    password2 = models.CharField(max_length=20)

    def __str__(self):
        return self.username
    class Meta:
        db_table = 'Teacher_Signup'


class Add_Grade(models.Model):
    grade = models.CharField(max_length=40)
    username = models.ForeignKey(Teacher_Signup,on_delete=models.CASCADE,  default = 1)

    #teacher_name = models.CharField(max_length=40)


    def __int__(self):
        return id
    class Meta:
        db_table = 'Add_Grade'

class Student_Signup(models.Model):

    grade = models.ForeignKey(Add_Grade,on_delete=models.CASCADE,  default = 1)
    username = models.CharField(max_length=70)
    father_name = models.EmailField(max_length=70)
    #grade = models.PositiveIntegerField ()
    age =models.PositiveIntegerField  ()
    phone_no =models.IntegerField ()
    password1 = models.CharField(max_length=20)
    password2 = models.CharField(max_length=20)

    def __str__(self):
        return self.username
    class Meta:
        db_table = 'Student_Signup'
        
class Add_Topics(models.Model):
    grade = models.ForeignKey(Add_Grade,on_delete=models.CASCADE,  default = 1)
    topic = models.CharField(max_length=40)


    def __int__(self):
        return id
    class Meta:
        db_table = 'Add_Topics'

class Sub_Topics(models.Model):
    grade = models.ForeignKey(Add_Grade,on_delete=models.CASCADE,  default = 1)
    topic = models.ForeignKey(Add_Topics,on_delete=models.CASCADE,  default = 1)
    videofile = models.FileField(upload_to='videos/', null=True, verbose_name="")
    subtopic = models.CharField(max_length=40,  default = 1)
    def __str__(self):
        return self.subtopic
    class Meta:
        db_table = 'Sub_Topics'

class Questions(models.Model):
    grade = models.ForeignKey(Add_Grade,on_delete=models.CASCADE,  default = 1)
    topic = models.ForeignKey(Add_Topics, on_delete= models.CASCADE , default = 1)
    sub_topic = models.ForeignKey(Sub_Topics, on_delete= models.CASCADE, default = 1)
    question = models.CharField(max_length=100)
    image= models.URLField(null=True)
    difficulty=models.CharField(max_length=100, default='')

    class Meta:
        db_table = 'questions'

class Options(models.Model):
    grade = models.ForeignKey(Add_Grade,on_delete=models.CASCADE,  default = 1)
    topic = models.ForeignKey(Add_Topics, on_delete= models.CASCADE, default = 1)
    sub_topic = models.ForeignKey(Sub_Topics, on_delete= models.CASCADE, default = 1)
    question = models.ForeignKey(Questions, on_delete= models.CASCADE, default = 1)
    option1 = models.CharField(max_length=20)
    option2 = models.CharField(max_length=20)
    option3 = models.CharField(max_length=20)
    option4 = models.CharField(max_length=20)
    class Meta:
        db_table = 'Options'

class Answers(models.Model):
    grade = models.ForeignKey(Add_Grade,on_delete=models.CASCADE,  default = 1)
    topic = models.ForeignKey(Add_Topics, on_delete= models.CASCADE, default = 1)
    sub_topic = models.ForeignKey(Sub_Topics, on_delete= models.CASCADE, default = 1)
    question = models.ForeignKey(Questions, on_delete= models.CASCADE, default = 1)
    option= models.ForeignKey(Options, on_delete= models.CASCADE, default = 1)
    correct_ans = models.CharField(max_length=20)

    class Meta:
        db_table = 'Answers'
in views.py

for e in subtopics:
                if e.subtopic==subtopicnames and e.topic_id==p and e.grade_id==o:
                    t=int(e.id)# currently user is working on this subtopic
            subtopicid=str(t)


            allques=Answers.objects.select_related('question').select_related('option').filter(sub_topic_id=t)
            print(str(allques.query))
            for x in allques:
                print(x.question.question,x.option.option1,x.option.option2,x.option.option3,x.option.option4,x.correct_ans)
从该数据库生成SQL查询

SELECT `Answers`.`id`, `Answers`.`grade_id`, `Answers`.`topic_id`, `Answers`.`sub_topic_id`, `Answers`.`question_id`, `Answers`.`option_id`, `Answers`.`correct_ans`, `questions`.`id`, `questions`.`grade_id`, `questions`.`topic_id`, `questions`.`sub_topic_id`, `questions`.`question`, `questions`.`image`, `questions`.`difficulty`, `Options`.`id`, `Options`.`grade_id`, `Options`.`topic_id`, `Options`.`sub_topic_id`, `Options`.`question_id`, `Options`.`option1`, `Options`.`option2`, `Options`.`option3`, `Options`.`option4` FROM `Answers` INNER JOIN `questions` ON (`Answers`.`question_id` = `questions`.`id`) INNER JOIN `Options` ON (`Answers`.`option_id` = `Options`.`id`) WHERE `Answers`.`sub_topic_id` = 2

请指导我如何使用DJANGO ORM获得子主题
id=1
的特定子主题问题,例如:

questions=questions.objects.filter(子主题\u id=1)
这将返回给定子主题的所有问题