Django - values_list CSV

Django - values_list CSV

我正在尝试导出 CSV in Django 并使用 values_list 到我想要导出的 select 字段。

My First Try

class ExportCSV(APIView):
    def get(self, request, *args, **kwargs):
        incidents = Incident.objects.filter(
            interview_date__range=(start, end),
            partner__twg=self.request.query_params.get("twg"),
        )

        for incident in incidents:
            writer.writerow(
                [
                    incident.incidenttwg1.getchild.values_list(  # <-- This line
                        "choice", flat=True
                    )
                ]
            )

我明白了。 <QuerySet ['Hello', 'Gudbye']>,所以我决定创建 loop 来获取 Hello and Gudbye

Here my second Try

class ExportCSV(APIView):
    def getincident(self, request, incident):  # Create a function
        for incident in incident.incidenttwg1.getchild.values_list("choice", flat=True):
            return incident

    def get(self, request, *args, **kwargs):
        incidents = Incident.objects.filter(
            interview_date__range=(start, end),
            partner__twg=self.request.query_params.get("twg"),
        )

        for incident in incidents:
            writer.writerow([self.getincident(request, incident)])  # Call function

我创建了一个 getincident 函数使其 cleanable 可以阅读。

我得到的是Hello,它应该是HelloGudbye,而不仅仅是Hello

有帮助吗??谢谢....

我猜你正在使用函数 getincident?

由于 return 语句位置,您只能获得第一个值。

def getincident(self, request, incident): # Create a function
    return [incident for incident in incident.incidenttwg1.getchild.values_list('choice', flat=True)]

这应该会在列表中为您提供所有值。