2014-10-09 5 views
11

क्या Jinja2/Flask में वर्तमान यूआरएल मुद्रित करने का कोई तरीका है?jinja2/flask (request.url काम नहीं कर रहा) में वर्तमान यूआरएल कैसे प्राप्त करें

उदा। यदि वर्तमान यूआरएल http://www.domain.com/example/1/2

{{ request.path }} काम करता है और प्रिंट करता है /example/1/2, लेकिन मुझे http: // के साथ पूरा यूआरएल कैसे प्राप्त करें?

दस्तावेज़ों से (here){{ request.url }} काम करना चाहिए, लेकिन यह कुछ भी नहीं पैदा करता है।

धन्यवाद

अद्यतन

यहाँ views.py से प्रस्तुत करना/संदर्भ आर्ग हैं:

class EventDetailView(EventObjectMixin, FormView): 
    template_name = 'gig/public/about.html' 
    context_object_name = 'event' 
    form_class = EventPurchaseTicketForm 

    def get_context_data(self, **kwargs): 
     context = super(EventDetailView, self).get_context_data(**kwargs) 

    ... 

     return context 
+3

क्या {{request.path}} वास्तव में आपके टेम्पलेट में ** काम करता है? ** आप बस अपने संदर्भ में 'अनुरोध' खो सकते हैं। कृपया हमें वह कोड दिखाएं जो जिंज टेम्पलेट की रेंडर विधि (या कम से कम कोड जो इसके लिए संदर्भ उत्पन्न करता है) को कॉल करता है। –

+0

हां, यह काम करता है। मैं किसी और के कोड को संपादित कर रहा हूं - आमतौर पर रेंडर विधि कहां मिलती है? Models.py में? – alias51

+1

दृश्य कोड में अधिक संभावना (उस यूआरएल के लिए तर्क के साथ अनुरोध हैंडलर) –

उत्तर

1

ढूँढें जहाँ आप इस के समान कोड है, आम तौर पर नियंत्रक में पाया। पीई या __ init__.py या views.py:

from flask import render_template 
... 

@app.route('/example/<arg1>/<arg2>') 
def some_view_function(arg1, arg2): 
    ... 

    return render_template('path/to/your/template.html') 

render_template() के साथ अनुरोध और अन्य चर उपलब्ध हैं।

1

आप {{ url_for(request.endpoint) }} का उपयोग कर सकते हैं, यह काम करता है।

+0

क्या आप यह बताकर अपना जवाब सुधार सकते हैं कि आपका कोड समस्या का समाधान कैसे करता है? –

संबंधित मुद्दे