2014-06-24 55 views
0

要求我做了这样的的Django无法从超级链接

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

一个超链接,我的网址是

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

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

回答

0

你的URL模式是寻找一个名为参数,但你实际上传递一个查询字符串参数。

如果你想的格局是:

/download/csv/ 

然后你需要你的电话更改为url到:

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

如果你想从查询字符串值,而不是,您需要将您的网址格式更改为:

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") 
+0

“csv”我怎样才能获得格式? – Aaeronn

+0

如果使用命名参数方法,则“csv”是“format”的值。你的视图需要接受一个名为“format”的关键字参数:'def my_view(request,format):' – Brandon

+0

我也有一个表单,并且我没有任何问题就得到它们的值。我用def get(self,request,pk,** kwargs)。我无法获得格式。我使用超链接作为Download CSV和url作为url(r'^ download /(?P )/ $',SingleNewsView.as_view(),name =“csv_download”)。我究竟做错了什么。我试过request.GET.get(“格式”) – Aaeronn

0

你尝试:{%网址'csv_download' 格式= 'CSV' %}或{%URL'csv_download 'CSV' %}

+0

我试过这个Download CSV,但它显示相同的错误... – Aaeronn

0

请试试这个{%URL 'csv_download' CSV%},并只有通过加+ W格式后

+0

这将假设'csv'是视图上下文中的变量。 – Brandon