【发布时间】:2019-01-12 07:07:29
【问题描述】:
我有一个包含所有应用程序 URL 文件的基本 URL 文件,我想做的是点击 Generate PDF Button,我想点击 APIView / view-function 通过 get 方法传递一个变量作为参数没有编码。
HTML:
<form onsubmit="{% url 'api-product:invoice-pdf-get' %}?R={{ variable }}">
<input type="submit" value="Generate PDF">
</form>
基本网址
path('api/product/', include(('store.urls', 'store'), namespace='api-product')),
path('invoice/', InvoiceUrl.as_view(), name='print-invoice'),
应用网址:
path('invoice-pdf-get/', invoice.InvoiceToPdf.as_view(), name='invoice-pdf-get'),
点击生成的 URL:(这是当前的,除了参数)
http://localhost:8000/invoice/?
不明白为什么我在检查 HTML 时得到相同的 URL,但我看到 URL 包含在其中,但 没有 localhost:8000。
在StackOverflow 上有几个与反向 URL 相关的答案,没有任何帮助。
另外,我没有包含任何 java 脚本等,只有引导程序和简单的自定义 CSS。只有一张普通的桌子。
如果我只是从 windows 文件目录中打开 HTML,然后单击按钮,我会得到:
http://localhost:63342/pos2all/templates/pogo-invoice.html?
更新:
现在参数没有传递,但在 HTML 检查中仍然可见,与上图相同。
API 看起来像:
class InvoiceToPdf(APIView):
"""
This API is used to get the Invoice and return pdf of invoice
using rest_framework Response and premission_classes
"""
permission_classes = (AllowAny,)
def get(self, request):
return Response("hi")
【问题讨论】:
-
您希望传递什么值?您的表单中没有任何字段,没有要传递的值
-
在 url 模式中它显示
/?R=我希望将它作为request.GET.get['R']得到它,因为我正在查看 stackoverflow 以了解如何通过 get 传递参数,所以它不会被传递,他们建议这样做@丹尼尔罗斯曼 -
基本上我想通过get方法将参数传递给api,
-
invoice-pdf-get的模式可能有问题 -
如果我将模式更改为
invoice-pdf-get/?R=,它会说找不到页面,
标签: html django django-views django-urls