从Django 1.6视图中,我想转到非Django网页
我有一个显示大量数据的网页。该页面是使用Django 1.6、基于类的视图和模板创建的。当用户单击其中一个显示的数据元素时,将调用另一个视图。然后,该视图生成一个参数列表,这些参数通过URL参数传递给另一个非Django的网页,例如amamzon.com。有办法做到这一点吗?目前,我调用第二个页面,页面上有一个按钮,其中包含指向非Django页面的“href”。使用来自Django.shortcuts的重定向。to按原样传递给重定向响应的位置标头 从django.shortcuts导入重定向 定义我的视图请求: 以某种方式构建我的url return redirectto=我的url 我最终: 创建了一个只包含此代码的模板。 在Views代码中,我添加了一个检查,看看我是应该在Django中使用标准模板,还是应该转到非Django网站。如果我想转到外部站点,我只需将类的模板名称更改为新模板并返回。 新模板将参数插入URL并重定向到网站。从Django 1.6视图中,我想转到非Django网页,django,url,redirect,Django,Url,Redirect,我有一个显示大量数据的网页。该页面是使用Django 1.6、基于类的视图和模板创建的。当用户单击其中一个显示的数据元素时,将调用另一个视图。然后,该视图生成一个参数列表,这些参数通过URL参数传递给另一个非Django的网页,例如amamzon.com。有办法做到这一点吗?目前,我调用第二个页面,页面上有一个按钮,其中包含指向非Django页面的“href”。使用来自Django.shortcuts的重定向。to按原样传递给重定向响应的位置标头 从django.shortcuts导入重定向 定
希望这对将来的其他人有所帮助。或者,如果有人有更好的想法,请告诉我。如果您在修改呈现数据的原始视图方面受到限制,那么您只需在特定视图中创建一个href,该视图可以从您要重定向用户的每个数据项计算新URL,然后重定向用户 在your views.py中: 然后,在模板中,对于要单击以进入重定向视图的任何项目,执行以下操作
<a href="{% url views.redirect_view args %}">Some data item</a>
或者,编写一个模板标记,获取数据并输出相应的URL以重定向到,然后将其放入标记中。e、 g
{% for item in items %}
<a href="{% get_redirect_url item %}">{{ item }}</a>
{% endfor %}
这些方法只是将页面变成一堆链接,而不需要任何特定的重定向视图
另一种方法是使用JavaScript,但我认为在这些情况下没有必要这样做。如果我使用重定向,它将通过我的url.py文件发送。但是我的目标URL没有在urls.py中定义,因为它不是我的项目/应用程序的一部分。在生成结果时,我当前覆盖了get_queryset和get_context_数据方法。正如您所描述的,我将重定向放在get_context_数据中,但它只是返回到我假设的默认页面,因为为类指定了模板名称。我尝试使用的重定向是这样的:return redirectto=我还发现这是可行的。我创建了一个模板,其中只有一个重定向。然后,视图代码选择此模板或列出结果的模板。我在IE 9.0、FF 34和Chrome上进行了测试。它很有效,但不是很有说服力。我刚刚看到了这篇文章。看起来它可能会起作用,但需要格式化整个网页才能重定向到别处。我觉得你好像做错了什么事。很抱歉,我没有时间实现ListView和check,你能告诉我你在做什么,比如用你在应用程序中的方式呈现用户的代码吗?如果它能让你满意,这是一个很好的解决方案。
from django.http import HttpResponseRedirect
def redirect_view(request, args):
new_url = figure_out_url(args)
return HttpResponseRedirect(new_url)
<a href="{% url views.redirect_view args %}">Some data item</a>
{% for item in items %}
<a href="{{ item.url }}">{{ item }}</a>
{% endfor %}
{% for item in items %}
<a href="{% get_redirect_url item %}">{{ item }}</a>
{% endfor %}