루 브릭을 나타내는 모델이 있으며 각 루 브릭에는 여러 행이 있습니다. 어떤 이유로 든 아래 쿼리를 실행하고 불완전한 쿼리 집합을받습니다. 변수 semesterrubric은 이미 코드에서 평가 된 루 브릭의 쿼리 세트이며 정확한 루 브릭 모델을 반환합니다.Django queryset은 잘못된 모델 인스턴스를 반환하지만 반복 작업을 수행합니다.
"""
semesterrubric pulls both Rubric 1 and Rubric 2
Rubric 1:
Row: 2 Row:4
Rubric 2:
Row: 1 Row : 1
"""
Row.objects.filter(rubric=semesterrubric)
<QuerySet [<Row: 2>, <Row: 4>]>
나는 내가 semesterrubric의 검색어 객체를 반복하고 각각의 섹션에서 행을 끌어 때, 내가 필요로하는 행과 두 개의 검색어 세트를받을 수 있기 때문에 불완전 알고있다.
[rubric.row_set.all() for rubric in semesterrubric]
[<QuerySet [<Row: 2>, <Row: 4>]>, <QuerySet [<Row: 1>, <Row: 1>]>]
모든 행을 반환하는 단일 쿼리가 필요합니다. 내가 뭘 놓치고 있니? 나는 대부분의 쿼리 세트에 대한 문서를 읽었지만 뭔가를 놓친 것이 가능합니다.
models.py
나는이 같은 검색어 세트 전달에 추천하지 않는 게 좋을class Rubric(models.Model):
name = models.TextField(default="Basic Rubric", unique=True)
template = models.BooleanField(default=True)
def __str__(self):
return self.name
class Row(models.Model):
CHOICES = (
('0', 'Your string for display'),
('4','Exemplary'),
('3','Proficient'),
('2','Partially Proficient'),
('1','Incomplete'),
)
name = models.CharField(default="None", max_length=100)
rubric = models.ForeignKey(Rubric)
row_choice = models.CharField(max_length=20,choices=CHOICES, default="0")
excellenttext = models.TextField(default="", blank=True)
proficienttext = models.TextField(default="", blank=True)
satisfactorytext = models.TextField(default="", blank=True)
unsatisfactorytext = models.TextField(default="", blank=True)
standards = models.ManyToManyField(Standard)
def __str__(self):
return self.row_choice
* 변수 semesterrubric은 루블릭 *의 queryset입니다. 그것은 queryset해서는 안됩니다. 그것은'Rubric' 인스턴스/객체 여야합니다. –