Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to pass javascript variable value to views.py function in django?

I am trying to send a string generated from javascript tag in my html page to views.py function. I'll use that value to render it to another html page where another javascript will use it.

This is the variable which parses json data:

var url = data.result.docs[i].source.enriched.url.url;

I want to send "url" to my function in views.py but i am not able to figure out a way.

Also i want to keep a link, so that when user click it the "url" is passed to views.py and my function there send it to other html file.

sjd += "<br/>" + data.result.docs[i].source.enriched.url.title +
            '<a href="/rawHtmlText/url">' + ' Read more' + '</a>' + '<br>'

This is kind of link i would like to have in my page. I know urls.py should have a proper pattern, but i am not able to figure it out.

May be jQuery can be used but I am a noob in this field so kind of stuck here.

Please guide me.

like image 838
Sangit Dhanani Avatar asked Nov 16 '25 05:11

Sangit Dhanani


1 Answers

The easiest way is probably to just build an AJAX query. Try something like this:

<script type="text/javascript">
    $(document).ready(function() {
        var url = data.result.docs[i].source.enriched.url.url;
        $("#send-my-url-to-django-button").click(function() {
            $.ajax({
                url: "/process_url_from_client",
                type: "POST",
                dataType: "json",
                data: {
                    url: url,
                    csrfmiddlewaretoken: '{{ csrf_token }}'
                    },
                success : function(json) {
                    alert("Successfully sent the URL to Django");
                },
                error : function(xhr,errmsg,err) {
                    alert("Could not send URL to Django. Error: " + xhr.status + ": " + xhr.responseText);
                }
            });
        });
    });
</script>

Assuming you have a button on your page like this:

<button type="button" id="send-my-url-to-django-button">Send URL to Django View</button>

Clicking that button should send the url to your Django view. Then on the Django side, you can access the url like so:

def process_url_from_client(request):
    url = request.POST.get('url')
like image 69
Dirty Penguin Avatar answered Nov 18 '25 19:11

Dirty Penguin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!