将视图重定向到外部站点。如何追加参数?

RedirectView to external site. How to append parameters?

我想从我的页面重定向到外部站点。这个外部站点地址是定义的,永远不会改变......我可以实现它......挑战来自:

我有一个表单,它将 Q 发布到我的视图函数中,它给出了最终的参数字符串以传递到 url 的模式中,据推测附加到这个外部网站的主要地址之后?标记...我只是找不到如何将此字符串传递和附加到给定 url 的信息。不知何故这对我来说很难,请不要判断得太苛刻。参数只有一个,是一个字符串,在视图函数中形成。

我在 urls.py 中使用 RedirectView:

path('do_request/found/', RedirectView.as_view(url='https://docs.djangoproject.com/'), name='found_objects'),

在views.py中(可能有一些错误,但只是为了提问的目的):

class UserFoundRequestView(TemplateView):
    model=ForQuery
    template_name='found_objects.html'

    def get_results(self, request):
        our_queries = ForQuery.objects.all()
        query=self.request.GET.get("q")
        if query:
            our_object=ForQuery.objects.filter(query_id__iexact=query)
        for x in our_queries:
            if x.query_id == our_object.query_id:
                name = x.dep_station
        #context = {
        #   'name' : name,
        #}
        return name

    def get_string(request):
        base_url = 'https://docs.djangoproject.com/'
        query_name = get_results()
        query_string = urlencode(query_name)
        url = '{}?{}'.format(base_url, query_string)
        return redirect(url)

要么追加到 url 要么只是将形成的 url 带到 patterns->path...

感谢您的帮助!

我的模板:

{% extends "base_generic.html" %}
{% block content %}
<div>
    <p>Paste value to the field</p>
    <form method="get" action="{% url 'found_objects' %}">
        <input type="text" name="q" placeholder="search by value" class="m-1 p-1"><button class=" btn btn-outline-primary m-1 p-1" type="Submit">Search</button>    
    </form>
</div>
{% endblock %}

您必须通过提交表单来触发视图,并且视图本身将 return 相应的重定向。 Between 是链接表单提交到相应视图的 url 映射,如下所示:

urls.py

from your_app.views import redirect_view

path('do_request/found/', redirect_view, name='found_objects'),

views.py

def redirect_view(request):

        our_queries = ForQuery.objects.all()
        query = request.GET.get("q")
        if query:
            our_object=ForQuery.objects.filter(query_id__iexact=query)
        for x in our_queries:
            if x.query_id == our_object.query_id:
                name = x.dep_station

        base_url = 'https://docs.djangoproject.com/'
        query_string = urlencode(name)
        url = '{}?{}'.format(base_url, query_string)
        return redirect(url)