将 UUID 列表作为参数传递给 django 端点 url

Pass List of UUID to django endpoint url as param

我有这个代码

#VIEWS
def report_pdf(request, queryset):
   if request.method == "GET":
       trans = Transaction.objects.filter(id__in=queryset)
    return something

#URLS
path("pdf/<uuid:queryset>", views.report_pdf, name="get_pdf")

#FRONT END
const handlePDFDownload = (ids) => {
    const body = ids
    axios.get(`/calc/pdf/`,body , { 
        responseType: 'blob',
    }).then(res => {
        fileDownload(res.data, 'filename.zip');
        console.log(res, 'downloading');
    }).catch(err => {
        console.log(err);
    })
 }

现在从我的前端反应我发送一个 get 请求到这个 endpointlist of UUID 值。 我无法从前端找到访问该列表的方法。

如有任何建议,我们将不胜感激!

您正在从前端发送 uuid 列表,但在您的网址中需要一个 uuid,因此您需要像这样更改它:

urls.py:

path("pdf/", views.report_pdf, name="get_pdf")

views.py:

def report_pdf(request):
    if request.method == "GET":
       uuid_list = request.GET.getlist("queryset[]")
       trans = Transaction.objects.filter(id__in=uuid_list)
    return something

我建议您将 uuid 作为查询参数传递给 url as

../pdf?queryset=<uuids here>

然后在您的视图中获取列表

queryset = request.GET.get('queryset')

然后在视图中使用 queryset