如何将queryset作为列表返回到单独的行中,不带括号

2024-05-15 03:53:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有我的课程模型:

class Lessons(models.Model):
student = models.ForeignKey(Students, 
on_delete=models.SET_NULL, null=True) 

headed_by = models.ForeignKey(Tutors, 
on_delete=models.SET_NULL, null=True)
day = models.CharField(max_length=4, 

choices=DAY_CHOICES, null=True)

start_time = models.TimeField(null=True, 
 blank=True)

type  = models.CharField(max_length=7, 
choices=TYPE_CHOICES, null=True)

price_band  = models.CharField(max_length=7, 
choices=PAYMENT_TYPE_CHOICES, blank=True, null=True)

created  = models.DateTimeField(auto_now_add=True )


def __str__(self):
    return str(self.student) + " at " + 
str(self.start_time)+ " on " + str(self.day)
class Meta:
    ordering=['student',"headed_by",'day','start_time']  

我有我的查询集:

tn_mon     = 
Lessons.objects.all().filter(headed_by__name="Tutor 
Name").filter(day__icontains="Mon")

返回

<QuerySet [<Lessons:Studentname1 at Time on Day>,
<Lessons:Studentname2 at Time on Day>

如果没有查询集,如何返回输出<&燃气轮机;[] 所以它返回如下所示

Studentname1 at Time on Day,
Studentname2 at Time on Day

Tags: selftruebytimeonmodelsnullstudent
2条回答
tn_mon = Lessons.objects.all().filter(headed_by__name="Tutor 
Name").filter(day__icontains="Mon").values()

#convert this object it into list
my_list = list(tn_mon)

#If you iterate list
for i in my_list:
 print(i)

Then you will get this
output:
Studentname1 at Time on Day,
Studentname2 at Time on Day

如果需要Json响应,只需将其转换为字典列表即可

data = []
    for i in my_list:
        data.append(i)
return JsonResponse(data, safe=False)

您只需循环查询集并对每个对象调用str()

for obj in tn_mon:
   print(str(obj))

将obj存储在list

tn_mon_list = []
for obj in tn_mon:
   tn_mon_list.append(str(obj))
   

相关问题 更多 >

    热门问题