8

I want to be able to access a bit of information that someone places in a GET variable right in the template of a page (HTML escaped, of course.) How would I go about doing this? I know you can grab this information with views, but in this case, I'd rather handle it HTML side.

4

2 に答える 2

12

別の変数を渡すのと同じように、その情報をビューからテンプレートに渡すことができます。テンプレートをレンダリングするときは、変数を追加してrequest.GETQueryDictを渡すだけです。テンプレート内のすべてのGETパラメータにアクセスできるようになります。

編集

direct_to_template自動的に含まれるRequestContext(request)ため、設定ですべてのコンテキストインスタンスを使用できます。settings.pyに追加'django.core.context_processors.request'してください。その後、テンプレートでTEMPLATE_CONTEXT_PROCESSORSアクセスDjangoのHttpRequestを使用できるようになります。{{ request }}設定例、URL、テンプレートは以下のとおりです。

settings.py

TEMPLATE_CONTEXT_PROCESSORS = (                                         
    'django.core.context_processors.request',

     # these are the default values from django. I am not sure whether they
     # are overritten when setting this variable, so I am including them             "django.contrib.auth.context_processors.auth",                  
    "django.core.context_processors.debug",                         
    "django.core.context_processors.i18n",                          
    "django.core.context_processors.media",                         
    "django.core.context_processors.static",                        
    "django.core.context_processors.tz",                            
    "django.contrib.messages.context_processors.messages"           
    )      

urls.py

urlpatterns = patterns('django.views.generic.simple',                      

    url(r'^about/$', 'direct_to_template', {'template':                    
        'about.html'}),
)                 

about.html

Your request is: <br /><br />                                                                                                                                                                                           

{{ request.GET }}

トピックに関するドキュメントも参照してください。

https://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext

https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATE_CONTEXT_PROCESSORS

于 2012-12-15T19:05:37.667 に答える
2

新しいDjangoでは、次のようなテンプレートで直接使用できます。

view.pyでrequest.POST['name']を使用してリクエストを送信する場合、テンプレートで次を使用できます。

{{request.POST.name}}

テンプレートでリクエストを取得する場合は、次を使用できます。

{{request.GET.name}}
于 2021-02-24T01:02:01.780 に答える