【问题标题】:django cannot get request from hyperlinkdjango 无法从超链接获取请求
【发布时间】:2014-06-24 10:31:47
【问题描述】:

我做了这样的超链接

<a href="{% url "csv_download" %}?format="csv"">Download CSV</a>

我的网址是

url(r'^download/(?P<format>)',SingleNewsView.as_view(), name="csv_download")

在我看来,我有获取格式的 get 方法,如果有 format=csv 我想做查询。我不知道如何获得这种格式。当我运行上面的脚本时,它给出的 get() 正好需要 3 个参数(给定 2 个)。谁能帮忙??

【问题讨论】:

    标签: django url get


    【解决方案1】:

    您的 URL 模式正在寻找一个 named 参数,但您实际上是在向它传递一个 querystring 参数。

    如果你希望模式是:

    /download/csv/
    

    那么您需要将您对url 的呼叫更改为:

    <a href="{% url "csv_download" "csv" %}">Download CSV</a>
    

    如果您想从查询字符串中获取值,则需要将您的 URL 模式更改为:

    url(r'^download/$',SingleNewsView.as_view(), name="csv_download")
    

    然后您可以使用以下方法获取“格式”参数:

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

    在任何一种情况下,您都缺少模式终止符“/$”,它应该是:

    url(r'^download/(?P<format>)/$',SingleNewsView.as_view(), name="csv_download")
    

    【讨论】:

    • 如果您使用命名参数方法,"csv" 是 format 的值。您的视图需要接受名为“格式”的关键字参数:def my_view(request, format):
    • 我在该视图中也有一个表格,我正在毫无问题地获得它们的价值。我使用了 def get(self, request, pk, **kwargs)。我无法获得格式。我使用超链接作为 Download CSV 和 url 作为 url(r'^download/(?P)/$ ',SingleNewsView.as_view(), name="csv_download")。我究竟做错了什么。我试过 request.GET.get("format")
    【解决方案2】:

    您尝试了吗:{% url 'csv_download' format='csv'%} 或 {% url 'csv_download' 'csv' %}

    【讨论】:

    • 我试过这个 Download CSV 但它显示同样的错误...
    【解决方案3】:

    请试试这个 {% url 'csv_download' csv %} 并在格式后加+W

    【讨论】:

    • 这将假定csv 是视图上下文中的一个变量。
    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2020-06-26
    • 2018-03-23
    • 1970-01-01
    • 2022-01-16
    • 2013-02-13
    相关资源
    最近更新 更多