用“str”方法在django视图中循环

时间:2016-03-29 12:25:27

标签: python django

这是我的模特:

class People(models.Model):
    name_text = models.CharField(max_length=200)
    surname_text = models.CharField(max_length=200)

    def __str__(self):
        return "%s %s" % (self.name_text, self.surname_text)

这是我的观点:

def index(request):
    people_list = People.objects.all()
    ######output = ', '.join([p.name_text for p in people_list])
    output = ', '.join([People for p in people_list])
    return HttpResponse(output)

我想看一个页面,显示所有名字和姓氏的人都在数据库中除以“,”,但我不知道如何做这个循环。我可能必须使用类别的def“ str ”,但我不知道如何。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

请尝试以下操作,为People.__str__()中的每个条目调用people_list

def index(request):
    people_list = People.objects.all()
    output = ', '.join([str(p) for p in people_list])
    return HttpResponse(output)

当您尝试以字符串形式加入人员列表时,原始代码段中出现错误:

output = ', '.join([People for p in people_list])

您正在生成一个未实例化的类列表(不是这些类的结果实例或对象),而是替换您的人员列表。