2017-06-03 16 views
0

私のファイルは次のように整理されています。djangoでテンプレートに複数の変数を渡すにはどうしたらいいですか?

urls.py:

from django.conf.urls import url, include 
from . import views 


urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^contact/', views.eurusd, name='eur'), 
    url(r'^contact/', views.VaR, name='lol'), 


] 

views.py:

from django.shortcuts import render 
from django.http import HttpResponse 

from yahoo_finance import Currency 

def eurusd (request): 
    eur_usd = Currency('EURUSD') 
    eur = ('EUR/USD Bid/Ask Price: ' +eur_usd.get_bid() +'/ '+eur_usd.get_ask()) 
    return render(request, 'personal/basic.html', {'eur': eur}) 

def VaR (request): 
    hallo = "this is a python sting" 
    return render(request, 'personal/basic.html', {'lol': hallo}) 

basic.html

{% extends "personal/header.html" %} 

{% block content %} 
<p>{{eur}}</p> 
<p>{{lol}}</p> 
{% endblock %} 

私の質問は以下のようになります。 EUR辞書からのみの文字列である理由私のテンプレートbasic.htmlとLOLではないという名前で返されますか? 私はbasic.htmlに複数の変数を渡すことができますか?

答えて

0

は、あなただけの1つのURLパターンを必要とし、あなたのビュー内の1つの機能で、にあなたのコードを変更します。

urls.py:

from django.conf.urls import url, include 
from . import views 


urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^contact/', views.eurusd, name='eur'), 
] 

views.py:

from django.shortcuts import render 
from django.http import HttpResponse 

from yahoo_finance import Currency 

def eurusd(request): 
    eur_usd = Currency('EURUSD') 
    eur = ('EUR/USD Bid/Ask Price: ' +eur_usd.get_bid() +'/ '+eur_usd.get_ask()) 
    hallo = "this is a python sting" 
    return render(request, 'personal/basic.html', {'eur': eur,'lol': hallo}) 
0

ますテンプレートを2つの変数でレンダリングしたいので、2つの関数を必要としないので、これを行う最も簡単な方法は、文脈で2つの変数を返す関数を書くことです。このようないくつか:

urls.py

from django.conf.urls import url, include 
from . import views 


urlpatterns = [ 
    url(r'^$', views.index, name='index'), 
    url(r'^contact/', views.eurusd, name='eur'), 
] 

views.py

eur_usd = Currency('EURUSD') 
    eur = ('EUR/USD Bid/Ask Price: ' +eur_usd.get_bid() +'/ '+eur_usd.get_ask()) 
hallo = 'This is the python string' 
    return render(request, 'personal/basic.html', {'eur': eur, 'hallo' : hallo}) 

このコードでURLを見つけようとするとき、あなたのtamplateは、あなたのケースのジャンゴで

罰金を動作しますが、あなたのURLのように見える最初のURLを見つけ、最初に機能するように要求します。

関連する問題