我正在django开发一个应用程序,并在几个国家/地区提供支持。在网站上应该根据它所在的子域显示国家标志,但我找不到通过django视图发送必要的标志图像的方法。
这是我的views.py
的一个例子def index(request):
subdomain = request.META['HTTP_HOST'].split('.')[0]
if subdomain == 'www':
dic.update({"countryflag": ''})
elif subdomain == 'mx':
dic.update({"countryflag": '<img src="{% static "images/mxflag.png" %}" alt="img">'})
elif subdomain == 'nz':
dic.update({"countryflag": '<img src="{% static "images/nzflag.png" %}" alt="img">'})
return render(request, 'mysite/index.html', dic)
我想在basetemplate.html中找到变量“countryflag”
<div id="cp_side-menu-btn" class="cp_side-menu">
{{ countryflag }}
</div>
这不起作用。我想将整个图像传递给countryflag键。有没有办法做到这一点,或者我必须在basetemplate.html中制作一个'if'?
答案 0 :(得分:1)
您正在尝试更新&#34; dic&#34;没有在index()中初始化它。 如果您声明的三种情况都不为真,请添加else语句。
答案 1 :(得分:1)
请先创建一个dic然后再为模板,我认为这应该有效
{{ countryflag|safe }}
答案 2 :(得分:0)
这个答案假设了一些事情。
目录设置:
djangoproject
--djangoproject
----__init__.py
----settings.py
----urls.py
----wsgi.py
--myapp
----migrations
------__init__.py
----admin.py
----apps.py
----models.py
----tests.py
----views.py
--static
----css
------main.cs
----js
------main.js
--manage.py
djangoproject / djangoproejct / urls.py:
from django.conf.urls import url, include # Add include to the imports here
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('myapp.urls'))
]
djangoproject / MyApp的/ urls.py
from django.conf.urls import url
from myapp import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
然后您应该设置myapp结构:
--myapp
----migrations
------__init__.py
----templates
------index.html
----admin.py
----apps.py
----models.py
----tests.py
----urls.py
----views.py
你的views.py
def index(self, request, **kwargs):
subdomain = request.META['HTTP_HOST'].split('.')[0]
if subdomain == 'www':
context = {'data' : [ {'countryflag': ''}]}
elif subdomain == 'mx':
context = { 'data' : [ { 'countryflag' : '<img src="{% static "images/mxflag.png" %}" alt="img">'}] }
elif subdomain == 'nz':
context = { 'data' : [ { 'countryflag' : '<img src="{% static "images/nzflag.png" %}" alt="img">'}] }
else:
context = {'data' : [ {'countryflag': ''}]}
return render(request, 'index.html', context)
的index.html
<div id="cp_side-menu-btn" class="cp_side-menu">
{% for i in data %}
{{i.countryflag}}
{% endfor %}
</div>