检测Django wizard_form.html模板中的URL

时间:2014-09-09 18:05:37

标签: django django-forms django-templates django-views

我有三个SurveyWizardViews,它们都使用相同的标准wizard_form.html,它位于templates / formtools / wizard / wizard_form.html as per the documentation

我在此模板中添加了一些基本逻辑,用于检测用户所在表单的哪个页面,以便我可以包含非标准页面/步骤,这是一个带有JS滑块的图像。一切都很完美。

{% if wizard.steps.current == '6' %}            
        <img src="{% static "survey/images/pathtwo/" %}{{display_image}}"/>                                                                     
        <section>   
            <span class="tooltip"></span>   
            <div id="slider"></div>  
            <span class="volume"></span>  
        </section>      
{% endif %}

但是,我现在希望为用户提供稍微不同的体验,具体取决于他们来自哪个视图/网址。

问题是否可以检测视图当前用于查看页面的URL? e.g。

{% if URL.current == 'www.mywebsite.com/experiment/surveyone/' %}   
    do X


{% if URL.current == 'www.mywebsite.com/experiment/surveytwo/' %}   
    do y

我做了一些搜索,但我甚至不确定我要搜索的是诚实的。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:2)

您可以使用request上下文变量。类似的东西:

{% if 'experiment/surveyone' in request.path %}
do this
{% endif %}

我更喜欢使用in代替==来忽略尾部和前导斜杠。如果你想要整个事情尝试build_absolute_uri方法。同时检查请求提供给您的选项(https://docs.djangoproject.com/en/dev/ref/request-response/#httprequest-objects)。

最后,不要忘记将django.core.context_processors.request添加到TEMPLATE_CONTEXT_PROCESSORS(我认为默认情况下会添加)。